द्वारा विधि को आमंत्रित करें मैं एक निश्चित विशेषता के साथ विधियों को आमंत्रित करना चाहता हूं। तो मैं अपनी असेंबली के साथ विधियों को खोजने के लिए सभी असेंबली और सभी विधियों के माध्यम से साइकिल चला रहा हूं। ठीक काम करता है, लेकिन जब मैं इसे केवल MethodInfo मिला तो मैं एक निश्चित विधि कैसे शुरू करूं?MethodInfo
AppDomain app = AppDomain.CurrentDomain;
Assembly[] ass = app.GetAssemblies();
Type[] types;
foreach (Assembly a in ass)
{
types = a.GetTypes();
foreach (Type t in types)
{
MethodInfo[] methods = t.GetMethods();
foreach (MethodInfo method in methods)
{
// Invoke a certain method
}
}
}
समस्या यह है कि मुझे उस वर्ग के उदाहरण को नहीं पता है जिसमें उस निश्चित विधि शामिल हैं। तो मैं इसे ठीक से नहीं बुला सकता क्योंकि विधियां स्थैतिक नहीं हैं। यदि भी संभव हो तो मैं इस कक्षा का एक नया उदाहरण बनाने से बचना चाहता हूं।
मैं क्या करना चाहता हूं एक कस्टम विशेषता के साथ विधियों को चिह्नित करना ताकि उन्हें कमांडलाइन द्वारा आमंत्रित किया जा सके। कोई फर्क नहीं पड़ता कि वे कहाँ हैं। लेकिन मैं आपसे सहमत हूं कि सीरेलल उदाहरणों पर समान तरीकों का आह्वान करने का कोई मतलब नहीं है, जहां विधि स्थैतिक नहीं है। तो मैं इसे एक प्रकार के मैनेजर क्लास में उपयोग करूंगा जिसमें इन ऑब्जेक्ट्स का संग्रह प्रति पैरामीटर के विशिष्ट उदाहरण पर एक आवेषण कॉल करने के लिए होता है। मुझे लगता है कि यह वही करेगा जो मैं चाहता हूं। धन्यवाद – apparat