Assembly关键字在AssemblyInfo.cs中的含义是什么。它允许在里面使用方法吗?

时间:2011-10-31 13:31:09

标签: c# .net

在AssemblyInfo.cs中看到一些代码片段,如

[assembly: someattributename]

这段代码是什么意思?

我甚至在组装中看到了一些方法,比如

[assembly: log4net.Config.XmlConfigurator(Watch=true)]

这是属性吗?

6 个答案:

答案 0 :(得分:16)

属性始终应用于元素(例如方法,属性)。 “assembly:”前缀表示属性(使用“ * ”省略的部分)为applied to the assembly

  

在程序集级别应用属性如果要在程序集级别应用属性,请使用Assembly关键字。以下代码显示在程序集级别应用的AssemblyNameAttribute。

using System.Reflection;
[assembly:AssemblyTitle("My Assembly")]
     

应用此属性时,字符串“MyAssembly”将放置在文件元数据部分的程序集清单中。您可以使用MSIL反汇编程序(Ildasm.exe)或通过创建自定义程序来检索属性来查看属性。

答案 1 :(得分:8)

这意味着这是一个attribute on the assembly itself而不是特定的类,方法,属性等。

答案 2 :(得分:6)

assembly:就是所谓的属性目标。它指定该属性适用于程序集本身,而不适用于程序集中的任何类型。其他一些属性定位是modulereturnparam

请参阅“Attributes (C# and Visual Basic)”。

答案 3 :(得分:3)

这些是装配属性,如here所述。

例如,它们构成了程序集(或:可执行文件)的版本信息。

答案 4 :(得分:2)

关于此程序集的一般信息通过这组属性进行控制。

Link

中显示了一个简单的解释

答案 5 :(得分:1)

到答案的第二个(已编辑)部分:

不,这不是方法调用。 log4net.Config.XmlConfigurator也是log4net定义的attribute。 (有关log4net的详细信息,请参阅documentation。)其确切声明为

public class XmlConfiguratorAttribute : ConfiguratorAttribute

在这种情况下,有点误导的是属性命名约定。这意味着当您使用属性(甚至在程序集级别)时,您可以从属性类名称中留下Attribute后缀。