我試圖在using
語句中使用泛型類,但編譯器似乎無法將其視爲實現IDisposable。在使用語句中不能使用通用C#類
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Objects;
namespace Sandbox
{
public sealed class UnitOfWorkScope<T> where T : ObjectContext, IDisposable, new()
{
public void Dispose()
{
}
}
public class MyObjectContext : ObjectContext, IDisposable
{
public MyObjectContext() : base("DummyConnectionString") { }
#region IDisposable Members
void IDisposable.Dispose()
{
throw new NotImplementedException();
}
#endregion
}
public class Consumer
{
public void DoSomething()
{
using (new UnitOfWorkScope<MyObjectContext>())
{
}
}
}
}
編譯器錯誤是:
Error 1 'Sandbox.UnitOfWorkScope<Sandbox.MyObjectContext>': type used in a using statement must be implicitly convertible to 'System.IDisposable'
我實現了IDisposable上UnitOfWorkScope(並看看是否這就是問題所在,也MyObjectContext)。
我錯過了什麼?
+1 - 確切地說。 UnitOfWorkScope不在給定的源中實現IDisposable。 – TomTom 2010-06-03 05:48:23