जेनेरिक निर्भरता इंजेक्शन हैंडलर (बेस सर्विस लोकेटर) पर काम करते समय मैं जेनेरिक मुद्दे में भाग रहा हूं।"टी टी: कक्षा" बाधा से मेल खाने के लिए आप टी को कक्षा में कैसे डाल सकते हैं?
संपादित करें (स्पष्टता के लिए)
ठीक है तो मैं वास्तव में एक डि रिसोल्वर के रूप में SimpleInjector उपयोग कर रहा हूँ और उस पर वर्ग बाधा है 1 GetInstance विधि है, तो यहाँ कुछ और पूरा कोड है:
public T GetInstance<T>() where T : class
{
try
{
// works
return _container.GetInstance<T>();
}
catch(ActivationException aEx)
{
return default(T);
}
}
public T GetInstance<T>()
{
try
{
if(typeof(T).IsClass)
{
// does not work, T is not a reference type
return _container.GetInstance<T>();
}
}
catch(ActivationException aEx)
{
return default(T);
}
}
संपादित 2 - अंतिम कोड के बाद से यह टिप्पणी में अजीब लग:
public T GetInstance<T>()
{
try
{
if(typeof(T).IsClass)
{
return (T) _container.GetInstance(typeof(T));
}
}
catch(ActivationException aEx)
{
return default(T);
}
}
शायद अगर हम एक लौटने अशक्त उदाहरण से अलग कारणों के बारे में यदि आप ऐसा करने में रुचि रखते हैं और अधिक पता था, ...? इसे ढांचा बनाने का एक बेहतर तरीका हो सकता है। –
कृपया संपादन 1 देखें कि मैं ऐसा क्यों करना चाहता हूं। – Laurence