c# - InternalsVisibleTo 与 "private protected"

标签 c# internalsvisibleto c#-7.2

新版本的 .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/

相关文章:

c# - HttpClientFactory如何注入(inject)类我无法控制核心2.1

c# - byte[] 的最大长度?

C# - InternalsVisibleTo 属性的安全问题

c# - 为什么还对 InternalsVisibleTo 引用的程序集进行了签名?

c# - 用Deflate算法解压Span<byte>中的数据

ref - 带有 Ref Return 的 C# 索引器也支持集合

c# - IEnumerable Where() 和 ToList() - 它们的实际作用是什么?

c# - 可以在 C# 中使用没有强名称程序集的 InternalVisibleTo 吗?

c# - 为什么 ref 结构不能用作类型参数?

c# - MVVM Light EventToCommand无法拦截UserControl事件的问题