C#の例外クラスには、デフォルトでアセンブリの名前に設定されるソースプロパティがあります。
この正確な文字列を取得する別の方法はありますか(別の文字列を解析せずに)?
私は次を試しました:
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
Assembly.GetExecutingAssembly()。Location