InternalsVisibleTo attribute ainât workin'!
这就是标题
好吧,我的项目有一个工作版本,使用了如下的东西。
[assembly: InternalsVisibleTo("Stuff.Test.Support, PublicKey="0024000004800000940000000302000000240000525341310004000001000100d158cd56401c3d90b52ca1a5f273d608c3ce12aaa21385b0f4ad7dc1b747e45ee1f1771c104c52cb4da1b587ae38b6d36fa1d8e8f14003c42f700bc62ef2ec04b231c5d930e4bc3691aa1ef7b6713926316d4be1165ede086e94190b44edd4ad0d024230ae6eb9deb728b00d71d1d468b20a9bb78f242bd6c41e640c2e5c0cd5")]
在登记之前,它是工作的。但是在TeamFoundationIDKWTF上合并之后是错误的,但它就像我的AssemblyInfo.cs 没有看到属性,但我验证了文件中没有任何更改,但仍然得到
"innaccessable due to its protection level."
错误(伽马辐射?太阳黑子?小邪恶的侏儒训练虫子把工作代码转换成不工作代码(哈哈)
我试着使用反射添加单个实例。。。
Assembly Core = Assembly.LoadFile("C:\Stuff.Internal.Core\bin\Debug\Stuff.Internal.Core.dll");
Object AssmWithIdentifier = Core.CreateInstance("AssemblyWithIdentifer", false);
'Stuff.Internal.AssemblyWithIdentifer' is inaccessible due to protection level.
否则,如果我注释掉任何与内部内容有关的内容,我的项目就可以编译了。
我用红门反射器仔细检查了我的“公钥”
我也尝试过使用privateObjects以这种方式访问方法,但无论我如何尝试,我都不能实例化任何内部的东西。
“由于其保护级别,无法访问。”
我忘了提我用的是sharedAssembly.cs 它全局管理程序集,并以与示例类似的方式设置了多个属性
assembly: InternalsVisibleTo
我已经在这个问题的开头展示了这个属性。