में एक स्थिर वर्ग को कैसे लपेटें मुझे एक दिलचस्प समस्या है। मुझे स्थिर वर्गों को गतिशील रूप से लपेटने की आवश्यकता है। अर्थात। मेरे कॉलर्स को एक गैर स्थैतिक उदाहरण वापस करें। उदा .:गैर स्थैतिक उदाहरण ऑब्जेक्ट (गतिशील रूप से)
public object CreateInstance(string className) {
Type t = assembly.GetType(className);
if (IsStatic(t)) {
return CreateStaticWrapper(t);
} else {
return Activator.CreateInstance(t);
}
}
तो CreateStaticWrapper
को लागू करने के लिए के रूप में संकेत है कि मैं क्या जरूरत है।
नोट: मैं दुर्भाग्य से गतिशील वस्तुओं का उपयोग नहीं कर सकता।
तो मेरे विकल्प क्या हैं? मैं आईएल पीढ़ी सीखने के लिए उत्सुक नहीं हूँ? यदि आईएल पीढ़ी (प्रतिबिंब। स्वीकार करें, या अब अन्य तरीके हैं?) क्या जाने का तरीका है क्या किसी के पास पॉइंटर्स हैं?
संपादित करें: यह ध्यान रखना महत्वपूर्ण है कि मैं डेलीगेट्स का एक शब्दकोश वापस कर सकता हूं। तो मैं इसके लिए Delegate.CreateDelegate
का उपयोग कर सकता हूं लेकिन मुझे लगता है कि ओवरलोडेड विधियों और जेनेरिक तरीकों को कैसे संभालना है, मैं काम नहीं कर सकता।
संपादित 2: एक और विकल्प एमिट का उपयोग करके किसी प्रकार के खाली कन्स्ट्रक्टर को इंजेक्ट करना होगा, फिर भी कोई पॉइंटर्स? क्या यह स्थिर के रूप में चिह्नित एक प्रकार पर भी संभव है? क्या स्थैतिक कीवर्ड इसे आईएल में बना देता है?
संपादित 3: कुछ संदर्भ के लिए, मैं इसे जावास्क्रिप्ट वातावरण में भेज रहा हूं: my project। इसलिए मैं (जावास्क्रिप्ट में) सक्षम होना चाहता हूं:
var fileHelper = .create('System.IO.File');
if (fileHelper.Exists(fileName)) { fileHelper.Delete(fileName); }
धन्यवाद सब।
क्या आपका लक्ष्य स्थैतिक वर्ग की सामग्री की एक प्रति बनाना है? क्या स्थैतिक वर्ग का एक गैर स्थैतिक समतुल्य है (स्थिर वर्ग के समान गुणों वाला एक गैर स्थैतिक वर्ग? – k3b
रैपर कैसा दिखना चाहिए? मूल वर्ग पर संबंधित स्थिर सदस्यों के लिए प्रॉक्सी इंस्टेंस सदस्य? – Einar
मैंने संपादित किया है (3) कुछ संदर्भ के लिए। असल में मैं इस स्थैतिक वर्ग को जावास्क्रिप्ट वातावरण में भेज रहा हूं। इसलिए हाँ प्रॉक्सी को एक ही हस्ताक्षर होना चाहिए। मैं (जावास्क्रिप्ट में) करने में सक्षम होना चाहता हूं: var fs = .create ('System.IO.File'); fs.Exists ('filename'); – gatapia