获取程序集名称
C#的exception类具有默认情况下设置为程序集名称的源属性。
有没有另一种方法来得到这个确切的string(不parsing不同的string)?
我已经尝试了以下内容:
catch(Exception e) { string str = e.Source; //"EPA" - what I want str = System.Reflection.Assembly.GetExecutingAssembly().FullName; //"EPA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" str = typeof(Program).FullName; //"EPA.Program" str = typeof(Program).Assembly.FullName; //"EPA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" str = typeof(Program).Assembly.ToString(); //"EPA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" str = typeof(Program).AssemblyQualifiedName; //"EPA.Program, EPA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" }
System.Reflection.Assembly.GetExecutingAssembly().GetName().Name
要么
typeof(Program).Assembly.GetName().Name;
我使用大会来设置表格的标题:
private String BuildFormTitle() { String AppName = System.Reflection.Assembly.GetEntryAssembly().GetName().Name; String FormTitle = String.Format("{0} {1} ({2})", AppName, Application.ProductName, Application.ProductVersion); return FormTitle; }
您可以尝试使用System.Reflection.AssemblyTitleAttribute.Title
属性的代码:
((AssemblyTitleAttribute)Attribute.GetCustomAttribute(Assembly.GetExecutingAssembly(), typeof(AssemblyTitleAttribute), false)).Title;
您可以使用AssemblyName
类获取程序集名称,前提是您具有程序集的全名:
AssemblyName.GetAssemblyName(Assembly.GetExecutingAssembly().FullName).Name
要么
AssemblyName.GetAssemblyName(e.Source).Name
MSDN参考 – AssemblyName类