新版本的 .Net 框架和 C# 提供了新的访问修饰符:private protected
。为了访问这样的成员,类必须同时
- 驻留在同一个程序集中
- 从定义类派生。
(与 protected internal
相比,满足其中一个条件就足够了)
出于测试目的,InternalsVisibleTo
属性在我想从位于不同程序集中的测试类中访问某个类的非公共(public)成员时非常方便。
private protected
如何与 InternalsVisibleTo
属性交互?我可以从派生自原始类的“ friend ”程序集中的类访问此类成员吗?
(我不能在我的机器上尝试,因为 Visual Studio 和 C# 的版本太旧了)。
最佳答案
是的,派生自基类的友好测试程序集中的类将可以访问 private protected
成员。
proposal因为新的访问修饰符明确说明了它映射到的 CLR 访问说明符 (protectedAndInternal
),但没有说明这又如何与 InternalVisibleTo
相关。
关于c# - InternalsVisibleTo 与 "private protected",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47591199/