1

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

4

2 回答 2

1

你有几个简单的选择:

  1. 在您的 AssemblyInfo.cs 文件中使用常量而不是文字。
  2. 将此属性添加到链接的共享文件(例如:CommonFriendAssemblies.cs)中,而不是复制到您的各个项目中。

#1 管理起来稍微简单一些,但它有一个不幸的副作用,即删除了对引用项目中引用的内部组件的 IntelliSense 支持

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

于 2010-09-27T13:43:31.970 回答
0

也许你可以使用 t4

重命名AssemblyInfo.csAssemblyInfo.tt

并添加这样的东西

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

[assembly: InternalsVisibleTo("<# Write(System.Reflection.Assembly.GetExecutingAssembly().FullName); #>")]
于 2010-09-27T13:25:06.473 回答