从外部引用和存储强名称以供重用

时间:2010-09-27 13:10:32

标签: c# strongname assemblyinfo internalsvisibleto

我有很多程序集将InternalsVisibleToAttribute指向同一个解决方案中的一个特定程序集。不幸的是,被指向的程序集具有强大的名称,因此我总是必须将相同的公钥标记一遍又一遍地放入AssemblyInfo.cs文件中。由于c#中没有预编译器,我如何理想地消除这种冗余。

2 个答案:

答案 0 :(得分:1)

你有几个简单的选择:

  1. 在AssemblyInfo.cs文件中使用常量而不是文字。
  2. 将此属性添加到共享文件(例如:CommonFriendAssemblies.cs),该文件已链接而不是复制到您的各个项目中。
  3. #1管理起来有点简单,但它有removing IntelliSense support for the referenced internals in the referencing project的不幸副作用。

    #2管理起来有点复杂,但它不会干扰IntelliSense支持。

答案 1 :(得分:0)

也许你可以使用t4

AssemblyInfo.cs重命名为AssemblyInfo.tt

并添加类似这样的内容

<#@ template language="C#v3.5" hostspecific="True" debug="True" #>
<#@ output extension="cs" #>

[assembly: InternalsVisibleTo("<# Write(System.Reflection.Assembly.GetExecutingAssembly().FullName); #>")]