IT

어셈블리 이름을 가져오는 중

itgroup 2023. 5. 23. 21:47
반응형

어셈블리 이름을 가져오는 중

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;

사용할 수 있습니다.AssemblyName어셈블리의 전체 이름을 가진 경우 어셈블리 이름을 가져올 클래스:

AssemblyName.GetAssemblyName(Assembly.GetExecutingAssembly().Location).Name

또는

AssemblyName.GetAssemblyName(e.Source).Name

MSDN 참조 - 어셈블리 이름 클래스

어셈블리를 사용하여 양식 제목을 다음과 같이 설정합니다.

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;

어셈블리.실행 어셈블리를 가져옵니다.위치

어셈블리의 위치를 알 수 없지만 표시 이름(예:ReactiveUI, Version=18.0.0.0, Culture=neutral, PublicKeyToken=null):

var assemblyName = "ReactiveUI, Version=18.0.0.0, Culture=neutral, PublicKeyToken=null"
new AssemblyName(assemblyName).Name // "ReactiveUI"

언급URL : https://stackoverflow.com/questions/4266202/getting-assembly-name

반응형