Pat*_*ick 176 .net c# reflection assemblyinfo
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"
}
Run Code Online (Sandbox Code Playgroud)
Jas*_*ter 324
System.Reflection.Assembly.GetExecutingAssembly().GetName().Name
Run Code Online (Sandbox Code Playgroud)
要么
typeof(Program).Assembly.GetName().Name;
Run Code Online (Sandbox Code Playgroud)
kir*_*ran 11
如果您有程序集的全名,则可以使用AssemblyName该类来获取程序集名称:
AssemblyName.GetAssemblyName(Assembly.GetExecutingAssembly().Location).Name
Run Code Online (Sandbox Code Playgroud)
或者
AssemblyName.GetAssemblyName(e.Source).Name
Run Code Online (Sandbox Code Playgroud)
我使用Assembly来设置表单的标题:
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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
152788 次 |
| 最近记录: |