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

标签 c# .net .net-assembly internalsvisibleto

我有一个强命名的 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/

相关文章:

.net - 为什么 Apple 允许在 iPhone 上使用 .NET 而不允许使用 Flash?

c# - 从西里尔字母到拉丁字母的音译

c# - 即使条件评估为 false,If 语句似乎也在评估

c# - 重新打开游戏时如何检查时间是否过去?

c# - 在没有实现的情况下设置属性(类型接口(interface))

c# - 将选定的行 gridview 传递到另一个表单上的另一个 gridview

c# - 如何在 Windows 中(在用户模式下)限制应用程序域级别的带宽?

c# - 为什么编译器在编译友元程序集时需要程序集文件名?

c# - 加载 System.Web 失败但加载 System.Xml 成功

c# - Azure持久功能: Fan Out vs. Parallel.ForEachAsync