2011-09-22 23 views

回答

0

要閱讀在裝配級屬性的信息,您將需要使用反思。然而,隨着一小幫手這是很容易:

public static T GetAttribute<T>(this Assembly asm) where T : Attribute { 
    if (asm == null) { throw new ArgumentNullException("asm"); } 
    var attrs = asm.GetCustomAttributes(typeof(T), false); 
    if (attrs.Length != 1) { 
    throw new ApplicationException(
     String.Format("Found {0} instances of {1} in {2}. Expected 1", 
     attrs.Length, typeof(T).Name, asm.FullName)); 
    } 
    return (T)(attrs[0]); 
} 

,從而給出一個類型,TargetType,從裝配:

string copyright = typeof(TargetType).Assembly.GetAttribute<AssemblyCopyrightAttribute>().Copyright; 
+0

這工作得很好。謝謝。這是Web應用程序的常用過程還是一些開發人員將此信息放在web.config文件中? – TroyS

+0

@tszoro不知道它是否適用於Web應用程序,但是更容易爲任何類型的應用程序創建自我一致的版本:只需維護一個正確的'AssemblyInfo.cs'(或者,在我的情況下,'SolutionInfo.cs'鏈接每個項目)。 – Richard

0

你只是在談論web.config?

<configuration> 
    <system.web> 
    <compilation> 
     <assemblies> 
     <add assembly="<AssemblyName>, Version=<Version>, Culture=<Culture>, PublicKeyToken=<PublicKeyToken>"/> 
     </assemblies> 
    </compilation> 
    </system.web> 
</configuration> 

在後臺代碼,你可以這樣做:

Imports System.Web.Configuration 
... 
WebConfigurationManager.GetSection("sectionyouwant") 

下面是從MSDN的例子:(如:AssemblyCopyrightAttributehttp://msdn.microsoft.com/en-us/library/system.web.configuration.webconfigurationmanager.aspx

+0

那麼實際上我是從MyProject的應用程序選項卡談論大會信息對話框。它包含標題,說明,公司,產品,版權,Trademak,彙編版本,文件版本,GUID和中性語言。我沒有在web.config文件中看到這個 – TroyS