我想從我的C#類庫中的WinForm項目中獲取AssemblyCompany屬性。在的WinForms,我可以用得到這個信息:從類庫中檢索AssemblyCompanyName
Application.CompanyName;
不過,我似乎無法找到一種方式來獲得在使用類庫,相同的信息。你可以提供的任何幫助將會很棒!
我想從我的C#類庫中的WinForm項目中獲取AssemblyCompany屬性。在的WinForms,我可以用得到這個信息:從類庫中檢索AssemblyCompanyName
Application.CompanyName;
不過,我似乎無法找到一種方式來獲得在使用類庫,相同的信息。你可以提供的任何幫助將會很棒!
要獲得當前您的代碼(類庫代碼)實際所在的裝配,並讀取其公司屬性:
Assembly currentAssem = typeof(CurrentClass).Assembly;
object[] attribs = currentAssem.GetCustomAttributes(typeof(AssemblyCompanyAttribute), true);
if(attribs.Length > 0)
{
string company = ((AssemblyCompanyAttribute)attribs[0]).Company
}
我不知道這是因爲我在.NET 2.0中,但我必須在GetCustomAttributes的調用結束時添加「true」。除此之外,像冠軍一樣工作!謝謝你的幫助! – 2009-10-26 19:37:02
我覺得它非常有用!如果你正在使用一個新的.NET版本,你可以使用typeof(CurrentClass).Assembly.GetCustomAttribute
Assembly assembly = typeof(CurrentClass).GetAssembly();
AssemblyCompanyAttribute companyAttribute = AssemblyCompanyAttribute.GetCustomAttribute(assembly, typeof(AssemblyCompanyAttribute)) as AssemblyCompanyAttribute;
if (companyAttribute != null)
{
string companyName = companyAttribute.Company;
// Do something
}
忘記檢查companyAttribute == null – 2009-10-26 19:35:32
固定。我從中得到的代碼不會檢查null,因爲它在我們的日誌記錄組件(公司名稱屬性IS設置)中。公司名稱是必需的,所以如果不存在,第一次違規的開發人員將運行代碼時會拋出異常! – 2009-10-26 19:53:27
您可以使用FileVersionInfo類來獲得公司名稱的更。
Dim info = FileVersionInfo.GetVersionInfo(GetType(AboutPage).Assembly.Location)
Dim companyName = info.CompanyName
Dim copyright = info.LegalCopyright
Dim fileVersion = info.FileVersion
爲什麼要使用fileinfo來獲取關於已在範圍內的相同程序集的信息? – devlord 2015-04-16 17:24:24
@lorddev我看到獲取FileVersionInfo對象的唯一方法是通過調用帶有字符串路徑的靜態/共享GetVersionInfo函數。其他選項? – 2015-04-16 21:01:40
AboutBox訪問並顯示大部分裝配信息(儘管不是生成日期)。我只是啓動AboutBox窗體,最小化,我添加了一些代碼以將所需字段彈出到通用類中,然後關閉窗體。 – italfingers 2017-01-05 14:11:16