如何使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++里的友元。

转载于:https://www.cnblogs.com/itgiant/archive/2011/12/21/2295733.html

你可能感兴趣的:(如何使Internal类型对其他程序集可见?)