.net - InternalsVisibleTo 属性不起作用

标签 .net attributes internalsvisibleto

我正在尝试使用 InternalsVisibleTo 程序集属性使 .NET 类库中的内部类对我的单元测试项目可见。由于某种原因,我不断收到一条错误消息:

'MyClassName' is inaccessible due to its protection level

两个程序集都已签名,并且我在属性声明中列出了正确的 key 。有什么想法吗?

最佳答案

您绝对确定属性中指定的公钥正确吗? 请注意,您需要指定完整的公钥,而不仅仅是公钥 token 。它看起来像:

[assembly: InternalsVisibleTo("MyFriendAssembly,
PublicKey=0024000004800000940000000602000000240000525341310004000001000100F73
F4DDC11F0CA6209BC63EFCBBAC3DACB04B612E04FA07F01D919FB5A1579D20283DC12901C8B66
A08FB8A9CB6A5E81989007B3AA43CD7442BED6D21F4D33FB590A46420FB75265C889D536A9519
674440C3C2FB06C5924360243CACD4B641BE574C31A434CE845323395842FAAF106B234C2C140
6E2F553073FF557D2DB6C5")]

大约有 320 个十六进制数字。不确定为什么您需要指定完整的公钥 - 可能仅使用其他程序集引用中使用的公钥 token ,某人就可以更轻松地欺骗 friend 程序集的身份。

关于.net - InternalsVisibleTo 属性不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/106880/

相关文章:

c# - 是否有开箱即用的方法来反序列化 Json.Net 中的抽象类?

java - 没有找到适合 println 的方法... Java

c# - 如何将项目的内容从 WPF 组合框拖放到 WPF 文本框

.net - codecampserver 中的 StaticFactory<T> 是众所周知的模式吗?

c# - 光标位置函数返回错误值

java - 一个类可以有一个它自己的对象作为属性吗?

python - 如何在 Windows 中使用 Python 删除只读属性目录?

c# - InternalsVisibleTo 属性不起作用

.net - 什么时候应该 [程序集 : InternalsVisibleTo()] be used?

c# - InternalsVisibleTo 除了几个类