这有什么问题?:

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/

10-12 23:16