Получение имени сборки
класс исключений C#имеет свойство source, которое по умолчанию имеет имя сборки.
Есть ли другой способ получить эту точную строку (без разбора другую строку)?
Я пробовал следующие:
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"
}
5 ответов:
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
Comments