विधानसभा का नाम हो रहा है


191

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"
}

जवाबों:


350
System.Reflection.Assembly.GetExecutingAssembly().GetName().Name

या

typeof(Program).Assembly.GetName().Name;

वीएस संकल्प usings पर त्रुटियों को दिखाने के। आप असेंबली का उपयोग कर सकते हैं। GetEntryAssembly ()। गेटनेम ()। नाम;
बुटासी ३०'१६ को s:४

3
वास्तव में यह टाइपोफ (कोई भी) होना चाहिए ।GetTypeInfo ()। असेंबली
Thaina

7

मैं प्रपत्र का शीर्षक सेट करने के लिए विधानसभा का उपयोग इस प्रकार करता हूं:

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;
}

1
बस खुशी है कि आप एक ऑफिस एडिन के भीतर से कॉल नहीं कर रहे हैं - जहां GetEntryAssembly () शून्य वापस आ जाएगा
पांडा 23

3

आप इस कोड की कोशिश कर सकते हैं जो System.Reflection.AssemblyTitleAttribute.Titleसंपत्ति का उपयोग करता है :

((AssemblyTitleAttribute)Attribute.GetCustomAttribute(Assembly.GetExecutingAssembly(), typeof(AssemblyTitleAttribute), false)).Title;


2

आप AssemblyNameविधानसभा का नाम पाने के लिए कक्षा का उपयोग कर सकते हैं , बशर्ते आपके पास विधानसभा का पूरा नाम हो:

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

या

AssemblyName.GetAssemblyName(e.Source).Name

MSDN संदर्भ - असेंबलीनेम वर्ग


2
GetAssemblyName विधि के पैरामीटर के कारण मुझे त्रुटि मिली। मुझे लगता है कि इसके Assembly.GetExecutingAssembly().Locationबजाय होना चाहिए था Assembly.GetExecutingAssembly().FullName
uzay95

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.