Assembly关键字在AssemblyInfo.cs中的含义是什么。 它允许在里面使用方法吗?
在AssemblyInfo.cs中看到了一些代码片段
[assembly: someattributename]
这段代码是什么意思?
我甚至看到了一些在assembly中使用的方法,比如
[assembly: log4net.Config.XmlConfigurator(Watch=true)]
这是属性了吗?
属性始终应用于元素(例如方法,属性)。 “assembly:”前缀表示属性(使用’ * ‘省略的部分) 应用于程序集 。
在程序集级别应用属性如果要在程序集级别应用属性,请使用Assembly关键字。 以下代码显示在程序集级别应用的AssemblyNameAttribute。
using System.Reflection; [assembly:AssemblyTitle("My Assembly")]
应用此属性时,字符串“MyAssembly”将放置在文件的元数据部分的程序集清单中。 您可以使用MSIL反汇编程序(Ildasm.exe)或通过创建自定义程序来检索属性来查看属性。
它意味着这是程序集本身的属性,而不是特定的类,方法,属性等。
assembly:
是所谓的属性目标 。 它指定该属性适用于程序集本身,而不适用于程序集中的任何类型。 其他一些属性目标是module
, return
和param
。
请参见“ 属性(C#和Visual Basic) ”。
这些是assembly属性,如此处所述。
例如,它们组成了程序集(或:可执行文件)的版本信息。
有关此程序集的常规信息是通过这组属性控制的。
此链接中显示了一个简单的解释
到答案的第二个(编辑过的)部分:
不,这不是方法调用。 log4net.Config.XmlConfigurator
也是log4net定义的属性 。 (请参阅log4net详细信息的文档 。)它的确切声明是
public class XmlConfiguratorAttribute : ConfiguratorAttribute
在这种情况下,有点误导的是属性命名约定。 这意味着当您使用属性(甚至在程序集级别)时,您可以从属性类名称中保留Attribute
后缀。