2012-05-23 9 views
6

मैं सहायता के लिए पूछना चाहता हूं। मैं निम्नलिखित है वर्ग:उदाहरण के वर्ग के माता-पिता को प्राप्त करें

public class POCOConfiguration : EntityTypeConfiguration<POCO> 
{ 
    public POCOConfiguration() 
    { 

    } 
} 

...

POCOConfiguration instance = new POCOConfiguration(); 

मैं कैसे उदाहरण प्रकार POCO से मिल सकता है?

धन्यवाद

उत्तर

9
instance.GetType().BaseType.GetGenericArguments()[0] 
0

वर्ग एक paremeterless निर्माता है , तो आप लिख सकते हैं:

public class POCOConfiguration : EntityTypeConfiguration<POCO> where POCO : new() 
{  
    public POCOConfiguration() 
    { 
     var poco = new POCO(); 
    } 
} 

नहीं तो आप, प्रतिबिंब का उपयोग Activator वर्ग को देखने के लिए।

0

जांच इस

POCOConfiguration instance = new POCOConfiguration(); 
Type t = instance.GetType().BaseType.GetGenericArguments()[0]; 
//here t is the type of POCO 

काम करेंगे ...

+1

आप विशेष रूप से इस तरह POCO प्रकार के लिए परीक्षण कर रहे हैं, तो यह बहुत आसान 'करने के लिए करता है, तो (उदाहरण के EntityTypeConfiguration है) {}' बजाय उपयोग प्रतिबिंब है। –

+0

मेरे पास है! मैं आपको परेशान करने की कोशिश नहीं कर रहा था, मेरी टिप्पणी अन्य लोगों के लिए यह इंगित करने के लिए अधिक थी कि प्रतिबिंब का उपयोग करना इस उदाहरण में किसी विशिष्ट प्रकार के परीक्षण का सबसे अच्छा तरीका नहीं है। –

+0

ये, आप सही हैं .. अपनी टिप्पणी के लिए +1 – Talha

0

अगर मैं तुम्हें समझ में सही आप POCO के प्रकार प्राप्त करना चाहते हैं। फिर एक विधि घोषित करें और इसे निम्न की तरह कॉल करें;

public Type GetTypeOfPoco<T>(EntityTypeConfiguration<T> entityTypeConfiguration) 
{ 
    Type t = typeof(T); 
    return t; 
} 

इसे कॉल करें;

Type t = GetTypeOfPoco(instance); 
संबंधित मुद्दे

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