La classe d'exception de C # a une propriété source qui est définie par défaut sur le nom de l'assembly.
Existe-t-il un autre moyen d'obtenir cette chaîne exacte (sans analyser une chaîne différente)?
J'ai essayé ce qui suit:
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"
}
c#
.net
reflection
assemblyinfo
Patrick
la source
la source
J'utilise l'Assemblée pour définir le titre du formulaire comme tel:
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; }
la source
Vous pouvez essayer ce code qui utilise la
System.Reflection.AssemblyTitleAttribute.Title
propriété:((AssemblyTitleAttribute)Attribute.GetCustomAttribute(Assembly.GetExecutingAssembly(), typeof(AssemblyTitleAttribute), false)).Title;
la source
Vous pouvez utiliser la
AssemblyName
classe pour obtenir le nom de l'assembly, à condition que vous ayez le nom complet de l'assembly:ou
Référence MSDN - Classe AssemblyName
la source
Assembly.GetExecutingAssembly().Location
au lieu deAssembly.GetExecutingAssembly().FullName
.Assembly.GetExecutingAssembly (). Emplacement
la source