• 如何使Internal类型对其他程序集可见?


     测试代码

    需要用到强名称密钥对,得先生成密钥对。

    首先打开 Microsoft Visual Studio 2010 x86 tools.

    第一步,敲入sn -k c:\PostSharp.snk(这一步是生成私钥,名称和路径可以自己另外定义)

    第二步,敲入sn -p c:\PostSharp.snk c:\PostSharpPublic.snk(这一步是根据私钥生成公钥)

    第三步,敲入sn -tp c:\PostSharpPublic.snk(这一步是获取公钥字串,此时控制台会出现如下提示)

    Microsoft(R) .NET Framework 强名称实用工具 版本 4.0.30319.1 版权所有(C) Microsoft Corporation。保留所有权利。

    公钥为 002400000480000094000000060200000024000052534131000400000100010055fa6a030f9605 a175c0c7bd9e610c1d9c39b5f2a3834e0e1d10716e71be7a3de79380678236fefeef6c12273a9e 7a7fb102995b355b0bfd4f01f79948465a09409e1add83d4eff0881c08de62cc3cddb37d9712ee e260329013530c8c689dc918db0afdb62f73603d36c77199803fd773a6026c23b1ddc76607d956 4fd8e5e9

    公钥标记为 bbe773d431a3500e

    第四步,点选需要访问Internal类型的项目,右键,选属性,签名,”为程序集签名“打钩,浏览,选择刚才生成的PostSharp.snk

    第五步,点选包含Internal类型的项目,右键,选属性,签名,”为程序集签名“打钩,浏览,选择刚才生成的PostSharp.snk

    第六步,给Internal类型的程序集加上下面的代码,下面一连串的PublicKey就是从刚才第三步操作结果拷贝的。

    [assembly:     InternalsVisibleTo(         "Test, PublicKey=002400000480000094000000060200000024000052534131000400000100010055fa6a030f9605a175c0c7bd9e610c1d9c39b5f2a3834e0e1d10716e71be7a3de79380678236fefeef6c12273a9e7a7fb102995b355b0bfd4f01f79948465a09409e1add83d4eff0881c08de62cc3cddb37d9712eee260329013530c8c689dc918db0afdb62f73603d36c77199803fd773a6026c23b1ddc76607d9564fd8e5e9"         )]

    至此大功告成。有点像C++里的友元。

  • 相关阅读:
    51nod1376 最长递增子序列的数量
    51nod1201 整数划分
    51nod1202 子序列个数
    51nod 博弈论水题
    51nod1052 最大M子段和
    51nod1678 lyk与gcd
    51nod1262 扔球
    BZOJ2763, 最短路
    吃西瓜 最大子矩阵 三维的。 rqnoj93
    noip2015 信息传递 强连通块
  • 原文地址:https://www.cnblogs.com/itgiant/p/2295733.html
Copyright © 2020-2023  润新知