新版本的.Net框架和C#提供了一个新的访问修饰符:private protected
。为了访问这样的成员,该类必须
(与protected internal
相比,满足其中一个条件就足够了)
出于测试目的,当我想从我位于不同程序集中的测试类中访问类的非公共成员时,InternalsVisibleTo
属性非常方便。
private protected
如何与InternalsVisibleTo
属性互动?我可以从驻留在原始类派生的“朋友”程序集中的类中访问此类成员吗?
(我无法在我的机器上尝试,因为Visual Studio和C#的版本太旧了)。
答案 0 :(得分:2)
到目前为止,InternalVisibleTo
的文档在“备注”部分中同时提到了internal
和private protected
。
答案 1 :(得分:1)
是的,从您的基类派生的友好测试程序集中的类将可以访问private protected
成员。
新访问修饰符的proposal明确指出了它映射到的CLR访问说明符(protectedAndInternal
),但没有说明这反过来与{{1}有何关系}。