2009-11-03 8 views
11
class Foo { } 

    class Foo1 : Foo { } 

    class Foo2 : Foo { } 

मैं बेस कक्षा के रूप में फू का उपयोग करने वाले सभी वर्गों को कैसे प्राप्त कर पाऊंगा? विरासत कक्षाएं एक ही असेंबली में आवश्यक नहीं हैं।मैं बेस क्लास के सभी विरासत कक्षाओं को कैसे प्राप्त कर सकता हूं?

+1

डिज़ाइन या रन समय पर? यदि डिज़ाइन है तो आप कुछ प्रश्नों के लिए इस प्रश्न का उल्लेख कर सकते हैं http://stackoverflow.com/questions/282377/visual-studio-how-do-i-show-all-classes-inherited-from-a-base-class –

+0

रन-टाइम पर, धन्यवाद। – Carlsberg

उत्तर

15

यह तेज़ नहीं है, लेकिन जब तक Foo एक ठोस प्रकार (इंटरफ़ेस नहीं) है, तो इसे काम करना चाहिए। Foo स्वयं इस कोड से वापस नहीं किया गया है।

AppDomain.CurrentDomain.GetAssemblies() 
         .SelectMany(assembly => assembly.GetTypes()) 
         .Where(type => type.IsSubclassOf(typeof(Foo))); 
+1

मुझे नहीं लगता कि ऐसा करने का कोई तेज़ तरीका है। – SLaks

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

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