2008-12-17 11 views
13

देता है। मैं विधानसभा का उपयोग करने का प्रयास कर रहा हूं। गेट टाइप ("MyCompany.Class1.Class2") गतिशील रूप से एक स्ट्रिंग से एक प्रकार प्राप्त करने के लिए।असेंबली.गेट टाइप ("MyCompany.Class1.Class2") का उपयोग शून्य

Assembly.GetType("MyCompany.Class1"); 

अपेक्षा के अनुसार काम करता है।

अगर मैं इस तरह के रूप में किसी अन्य वर्ग के भीतर एक वर्ग को एम्बेड:

namespace MyCompany 
{ 
    public class Class1 
    { 
    //..... 
    public class Class2 
    { 
     //..... 
    } 
    } 
} 

और प्रकार Class2

Assembly.GetType("MyCompany.Class1.Class2") 

प्राप्त करने के लिए एक अशक्त वापस आ जाएगी प्रयास करें।

मैं नेट का उपयोग कर रहा चौखटे 3.5 एसपी 1

क्या किसी को पता है कि मैं गलत तरीके से क्या कर रहा है और क्या मैं इसे ठीक करने के लिए कर सकते हैं?

अग्रिम धन्यवाद

केविन डी वुल्फ ताम्पा, FL

उत्तर

18

आप नेस्टेड वर्ग Assembly.GeType का उपयोग कर मैप किया जा करने के लिए धन चिह्न की जरूरत है।

Assembly.GetType("MyCompany.Class1+Class2"); 
+1

आप करीब हैं। आपको "MyCompany.Class1 + Class2" की आवश्यकता है। –

+0

हाँ, बस इसे देखा, धन्यवाद! – CMS

+0

यदि असेंबली स्मृति में लोड नहीं है, तो आपको पूरी तरह से योग्य प्रकार का नाम होना चाहिए। GetType ("MyCompany.Class1 + कक्षा 2, MyAssembly"); – Hallgrim

5

मुझे लगता है कि इसे MyComnpany.Class1 + Class2 नाम दिया गया है। नाम देखने के लिए

Assembly assem = Assembly.GetExecutingAssembly(); 
Type[] types = assem.GetTypes(); 

उदाहरण प्रकार:

अगर मैं एक समान संरचना पर इस कोड को चलाने के लिए, यह है कि मैं क्या देख रहा है।

4

आपको प्लस संकेतों का उपयोग करने की आवश्यकता है। कुछ "MyAssembly.Class1 + NestedClass" की तरह कुछ।

संबंधित मुद्दे