为什么还会对InternalsVisibleTo引用的程序集进行签名?

时间:2017-10-23 06:01:32

标签: c# .net .net-assembly internalsvisibleto

我有一个强名称的c#程序集:Strong.Named.Assembly.dll。它具有属性InternalsVisibleTo及其公钥,用于另一个程序集:[assembly: InternalsVisibleTo("Another.Assembly, PublicKey=xxx")]Anoter.Assembly尚未签名。因此,在我Strong.Named.Assembly之前,我无法引用Another.Assembly中的课程。

为什么不能将强名称程序集的内部显示给未签名的程序集?

1 个答案:

答案 0 :(得分:3)

查看MSDN InternalsVisibleToAttribute Class。文档明确指出"当前程序集和友元程序集必须是未签名的,或者两个程序集都必须使用强名称签名。"

我认为原因很明显。它保证您授予内部访问权限的程序集在将来发生更改时不会攻击您的实现。