ये समान प्रश्न हैं: How-to: Load a type from a referenced assembly at runtime using a string in Silverlight, GetType on a class in a referenced assembly fails लेकिन न तो जवाब काम करता है।वर्ग नाम को स्ट्रिंग के रूप में आपूर्ति करके संदर्भित असेंबली में टाइप प्राप्त करें?
मुझे एक एमवीसी प्रोजेक्ट मिला है जो डेटाबेस से डेटा खींचता है जिसमें सादे प्रकार स्ट्रिंग्स शामिल हैं। ये प्रकार एक संदर्भित असेंबली में हैं, एमवीसी परियोजना में नहीं।
इसलिए उदाहरण के लिए मान लीजिए कि मेरी संदर्भित विधानसभा नाम MyFramework
है और सादे प्रकार का नाम Car
, पूर्ण प्रकार का नाम MyFramework.Cars.Car
या MyFramework.Vehicles.Cars.Car
या कुछ अन्य भिन्नता हो सकता हैं। मेरे पास संदर्भित असेंबली नाम और सादा वर्ग का नाम स्ट्रिंग्स के रूप में है। पूर्ण प्रकार के नाम के बावजूद मैं प्रकार कैसे प्राप्त कर सकता हूं?
अंत में, क्या मैं संदर्भित असेंबली में एक फ़ंक्शन लिख सकता हूं जो GetType() को कॉल करता है और एमवीसी प्रोजेक्ट में इसका उपयोग करता है, इसलिए मैं असेंबली नाम सहित पूर्ववत कर सकता हूं? मैं विधानसभा नाम जानने निकालना चाहते हैं तो मैंने सोचा कि मैं की तरह संदर्भित विधानसभा में एक util लिख सकते हैं:
namespace MyFramework //the referenced assembly
{
public static class TypeUtil
{
public static Type GetFrameworkType(string typeName)
{
return Type.GetType(typeName);
}
}
}
और फिर मेरी MVC परियोजना में मैं एक स्ट्रिंग नाम के रूप में विधानसभा की जरूरत के बिना यह कह सकते हैं। क्या यह संभव है या क्या मुझे हमेशा असेंबली नाम की आवश्यकता होगी?
अन्य उत्तरों क्यों काम नहीं करते? –
@RobertHarvey ऐसा इसलिए है क्योंकि मेरे पास सिर्फ सादा वर्ग का नाम है। पूर्ण प्रकार का नाम नहीं है। वे जवाब पूर्ण प्रकार को जानने पर भरोसा करते हैं। – SventoryMang