看到裏面的AssemblyInfo.cs一些代碼片段就像AssemblyInfo.cs中的程序集關鍵字的含義是什麼?它允許使用裏面的方法嗎?
[assembly: someattributename]
是什麼代碼是什麼意思?
我甚至看到裏面的組件一起使用的一些方法,如
[assembly: log4net.Config.XmlConfigurator(Watch=true)]
這是屬性了嗎?
看到裏面的AssemblyInfo.cs一些代碼片段就像AssemblyInfo.cs中的程序集關鍵字的含義是什麼?它允許使用裏面的方法嗎?
[assembly: someattributename]
是什麼代碼是什麼意思?
我甚至看到裏面的組件一起使用的一些方法,如
[assembly: log4net.Config.XmlConfigurator(Watch=true)]
這是屬性了嗎?
這意味着這一個attribute on the assembly itself,而不是在一個特定的類,方法,屬性等
這些是組件的屬性,如所解釋here。
例如,它們組成了組件的版本信息(或:可執行文件)。
屬性總是應用於元素(例如方法,屬性)。 「彙編:」前綴表示該屬性(您使用'*'省略的部分)爲applied to the assembly。
在組件級別將屬性如果你想在彙編級應用的屬性,使用關鍵字大會。以下代碼顯示了在程序集級別應用的AssemblyNameAttribute。
using System.Reflection; [assembly:AssemblyTitle("My Assembly")]
當應用該屬性,字符串「MyAssembly程序」被放置在組件中的文件的元數據部分的清單。您可以通過使用MSIL反彙編程序(Ildasm.exe)或通過創建自定義程序來檢索屬性來查看該屬性。
一般信息關於這個程序集是通過這組屬性來控制的。
一個簡單的解釋顯示在這個Link
要你的答案的第二(編輯)的一部分:
不,它不是一個方法調用。 log4net.Config.XmlConfigurator
也是由log4net定義的attribute。 (見documentation爲log4net的細節。)它的確切聲明
public class XmlConfiguratorAttribute : ConfiguratorAttribute
什麼是一點點在這種情況下誤導是屬性命名約定。這意味着,當您使用屬性(即使在裝配級別)時,您可以從屬性類名稱中保留Attribute
後綴。
assembly:
是所謂的屬性目標。它指定該屬性適用於程序集本身,而不適用於程序集中的任何類型。其他一些屬性目標爲module
,return
和param
。
我認爲這是最準確的答案。 – Tarik