我正在尝试使用 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/