这有什么问题?:
public abstract class EFNLBaseRepository:IDisposable
{
NLSubscriberDBContext _dbContext;
protected internal NLSubscriberDBContext dbContext
{
get
{...}
}
...
}
internal class NLSubscriberDBContext : DbContext
{
...
}
当然,两个类都在同一个程序集中。
这是我得到的编译错误:
最佳答案
protected internal
允许所有子类访问该属性,即使子类在 DLL 之外。这与 internal
属性的类型不一致,因为它需要来自外部的子类才能访问内部类型。
考虑这个例子:我从你的 DLL 外部继承 EFNLBaseRepository
public sealed EFNLSealedRepository : EFNLBaseRepository {
public DoSomething() {
// Access to dbContext should be allowed, because it is protected;
// However, NLSubscriberDBContext should not be accessible.
// This is an inconsistency flagged by the C# compiler.
NLSubscriberDBContext context = dbContext;
}
}
关于c# - 为什么我得到 "Inconsistent accessibility: property type xxx..."?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10834018/