कहो मैं एक SpaceShip
वर्ग है, इसलिए की तरह के लिए एक पास के माध्यम से निर्माता बनाने के लिए TypeBuilder का उपयोग करना:आधार वर्ग
public class SpaceShip {
public SpaceShip() { }
public SpaceShip(IRocketFuelSource fuelSource) { }
}
मैं TypeBuilder
उपयोग करने के लिए रन-टाइम जो अंतरिक्ष यान से विरासत में एक प्रकार का निर्माण करना चाहते , और स्पेसशिप में से प्रत्येक के लिए एक कन्स्ट्रक्टर को परिभाषित करता है। मुझे वास्तव में करने के लिए रचनाकारों की आवश्यकता नहीं है माता-पिता ("पास-थ्रू" कन्स्ट्रक्टर) तक उनके तर्कों को छोड़कर कुछ भी। उदाहरण के लिए, उत्पन्न प्रकार कुछ इस तरह दिखाई होता अगर सी # में व्यक्त किया:
public class SpaceShipSubClass : SpaceShip {
public SpaceShipSubClass() : base() { }
public SpaceShipSubClass(IRocketFuelSource fuelSource) : base(fuelSource) { }
}
चीज़ें थोड़ी जटिल करने के लिए, मैं वास्तव में नहीं जानता कि कौन सी क्लास उत्पन्न प्रकार चलाने के समय जब तक से इनहेरिट किया जाएगा (ताकि मुझे किसी भी संख्या में रचनाकारों को ध्यान में रखना होगा, संभवतः डिफ़ॉल्ट पैरामीटर के साथ)।
क्या यह संभव है? मुझे लगता है कि अगर मैं शुरू करने के लिए एक सामान्य दिशा थी, तो मैं इसे समझ सकता हूं, यह सिर्फ इतना है कि मैं TypeBuilder
पर पूरी तरह से नया हूं।
धन्यवाद!
मैं के लिए बस क्या देख रहा था! हालांकि मुझे उन पक्की 'संरक्षित' कन्स्ट्रक्टर प्राप्त करने के लिए 'GetConstructors (BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)' में बदलना पड़ा था। – dlras2
@Dan: बढ़िया, मुझे यकीन नहीं था कि किसी और को इसकी आवश्यकता होगी इस। उस कीवर्ड को जोड़ने के लिए धन्यवाद, मेरे पास हाथ से घोषणा लिखने के लिए (गलत) होना चाहिए, फिर केवल शरीर को प्रतिलिपि बनाना चाहिए। – Cameron
यह महोदय, शुद्ध सोने है! – Waescher