爲什麼我不能直接撥打DbContext.ObjectContext
?我能做到這一點((IObjectContextAdapter)context).ObjectContext
爲什麼我不能直接調用DbContext.ObjectContext?
我認爲內部機制是隱式實現的接口這樣
class Program
{
static void Main(string[] args)
{
TestClass t = new TestClass();
((TestInterface)t).TestMethod();
// I can't call t.TestMethod()
Console.ReadKey();
}
}
public interface TestInterface
{
void TestMethod();
}
public class TestClass : TestInterface
{
void TestInterface.TestMethod()
{
Console.WriteLine("abcdefg");
}
}
我遇到這個問題,這之前是IEnumerable<T>
繼承IEnumerable
,它具有通用版本IEnumerator<T> GetEnumerator()
和非通用版本爲IEnumerator GetEnumerator()
,但您只能調用通用版本而不是非通用版本。這是因爲非通用類型不是類型安全的,作者想隱藏它。
但是DbContext類的原因是什麼?
如果您想將IEnumerable轉換爲IEnumerable您需要撥打電話或者電話。 –
Pawel