我有一个强命名的 C# 程序集:Strong.Named.Assembly.dll。对于另一个程序集,它具有属性 InternalsVisibleTo
及其公钥:[assembly: InternalsVisibleTo("Another.Assembly, PublicKey=xxx")]
。 Anoter.Assembly
尚未签名。因此,在我也调用了 Another.Assembly
之前,我无法引用 Strong.Named.Assembly
中的类。
为什么不能向未签名程序集的内部显示强命名程序集?
最佳答案
看看 MSDN InternalsVisibleToAttribute Class .文档明确指出“当前程序集和友元程序集都必须未签名,或者两个程序集都必须使用强名称签名。”
我认为原因很明显。它保证您授予内部访问权限的程序集在将来发生更改时无法攻击您的实现。
关于c# - 为什么还对 InternalsVisibleTo 引用的程序集进行了签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46882849/