获取程序集名称

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类