मैं एक आवरण सामान्य वर्ग कि प्रकार के एक सेट के साथ इस्तेमाल किया जा करने का इरादा है। उन प्रकारों को उपयोगिता द्वारा उत्पन्न किया जाता है और सभी बेस क्लास क्लाइंटबेस से व्युत्पन्न होते हैं। जबकि क्लाइंटबेस के पास केवल एक डिफ़ॉल्ट कन्स्ट्रक्टर है, सभी जेनरेट किए गए प्रकारों में डिफ़ॉल्ट कन्स्ट्रक्टर के साथ-साथ एक कन्स्ट्रक्टर पैरामीटर के रूप में एक स्ट्रिंग लेता है। रैपर वर्ग के निर्माता में, मैं उस प्रकार के उदाहरण को तत्काल करता हूं जो एक स्ट्रिंग लेता है।सामान्य प्रकार को बाधित करने के लिए कैसे एक कन्स्ट्रक्टर होना चाहिए जो कुछ मानकों को लेता है?
public class ClientBase
{ }
public class GenericProxy<T>
where T: ClientBase, new()
{
T _proxy;
public GenericProxy(string configName)
{
_proxy = new T(configName);
}
}
इस कोड संकलन नहीं है क्योंकि प्रकार टी एक निर्माता है कि एक स्ट्रिंग लेता है करने के लिए गारंटी नहीं है: यहाँ एक नमूना कोड है। क्या सामान्य टी पर एक बाधा परिभाषित करने का कोई तरीका है कि इस प्रकार टी को एक कन्स्ट्रक्टर होना चाहिए जो स्ट्रिंग ले लेता हो? यदि यह संभव नहीं है, तो इस तरह की स्थिति को संभालने के लिए अच्छे विकल्प क्या हैं?