代码之家  ›  专栏  ›  技术社区  ›  Terrance

InternalsVisibleTo属性无效

  •  7
  • Terrance  · 技术社区  · 14 年前

    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 我已经在这个问题的开头展示了这个属性。

    2 回复  |  直到 4 年前
        1
  •  4
  •   Terrance    14 年前

    结果是 工作流定义 造成差异的原因。仍然在想为什么。。。。。
    好吧,如果有人能提供一个链接来解释为什么我会得到+1。

        2
  •  2
  •   James Manning    14 年前

    2) 根据您稍后收到的错误消息,您是否尝试了InternalsVisibleTo(“Stuff.Test.Support") ?