2010-05-20 7 views
61

कल प्रकार पैरामीटर के साथ उपयोग नहीं किया जा सकता मैं क्रियान्वित कर चुके हैं त्रुटि फेंकता है:IUnityContainer.Resolve <T> का दावा यह

CustomerProductManager productsManager = container.Resolve<CustomerProductManager>(); 

यह compilable और काम कर रहा था।

आज (शायद मैं संशोधित कर लिया है कुछ) मैं लगातार त्रुटि हो रही है:

The non-generic method 'Microsoft.Practices.Unity.IUnityContainer.Resolve(System.Type, string, params Microsoft.Practices.Unity.ResolverOverride[])' cannot be used with type arguments

मेरे सहयोगी एक ही स्रोत कोड है और एक ही त्रुटि नहीं है। क्यूं कर? समस्या का समाधान कैसे करें?

पीएस

लाइन "माइक्रोसॉफ्ट.प्रैक्टिस.यूटीटी का उपयोग"; उपयोग खंड में मौजूद है।

मैं गैर सामान्य से एक के साथ जेनेरिक वर्जन को बदलने के लिए कोशिश की है:

CustomerProductManager productsManager = (CustomerProductManager)container.Resolve(typeof(CustomerProductManager)); 

और एक और त्रुटि मिली:

No overload for method 'Resolve' takes '1' arguments

यह विधानसभाओं में से एक संदर्भित नहीं है की तरह लगता है .. लेकिन कौनसा? मेरे पास 2 संदर्भित हैं: 1. माइक्रोसॉफ्ट.प्रैक्टिस.यूटीटीएल 2. माइक्रोसॉफ्ट.प्रैक्टिस। सर्विसलोकेशन.dll

पीपीएस मैं इसी तरह की समस्या http://unity.codeplex.com/WorkItem/View.aspx?WorkItemId=8205 देखा है, लेकिन यह उपयोगी

+0

क्या आप एकता 2.0 का उपयोग कर रहे हैं? – Vadim

+0

क्या आपने इसे काम किया है? –

+0

हां, मैं v2.0 – Budda

उत्तर

163

मैं एक ही समस्या थी और प्रिज्म नमूना कोड फ़ाइलों को देखकर "ठीक करें" पाया हो जाएगा के रूप में "नहीं एक बग"

किसी भी सोचा हल हो गई है। ऐसा लगता है कि, भले ही वह एकता V2 में एक dll नहीं है आप के लिए अपनी कक्षा में एक संदर्भ जोड़ने के लिए: Microsoft.Practices.Unity का पालन के रूप में

using System; 
using System.Windows; 
using Microsoft.Practices.Composite.Modularity; 
using Microsoft.Practices.Unity; 
using Microsoft.Practices.Composite.UnityExtensions; 

मेरा पूरा "का उपयोग" खंड है

मुझे यकीन नहीं है कि आप सिल्वरलाइट का उपयोग कर रहे हैं, लेकिन कंटेनर के लिए जेनेरिक संस्करण। माइक्रोसॉफ्ट में है। व्यवहार। ज्ञान।

+9

बिल्कुल। कुछ समय पहले मुझे पता चला है कि 'माइक्रोसॉफ्ट.प्रैक्टिस.यूटीटी' का उपयोग करना एक मुद्दा हल करता है। – Budda

+0

धन्यवाद! यह मेरे लिए किया था! : डी –

+1

यह मुझे भी काम करता है, लेकिन अब भी बदनाम करने वाले अप्रयुक्त 'निर्देशों का उपयोग करके' चिल्ला रहा है। – IbrarMumtaz

0

मेरी स्थिति में कक्षा मैं एक सार आधार वर्ग से विरासत में मिलाकर एकता के साथ लपेट रहा था, और बेस क्लास में पैरामीटर रहित कन्स्ट्रक्टर नहीं था। एक बार जब मैंने बेस क्लास के लिए पैरामीटर रहित कन्स्ट्रक्टर का उपयोग करने के लिए अपना कोड बदल दिया, तो समस्या गायब हो गई।

1

मुझे इस समस्या का सामना करना पड़ा और इनमें से कोई भी जवाब मेरी मदद नहीं करता था। मुझे संकलन समय त्रुटि

Unknown method RegisterType() of Microsoft.Practices.Unity.IUnityContainer

मेरे नीचे दिए गए कोड के लिए।

Container.RegisterType<MyInterface, MyClass>();

मैंने पाया कि अगर आप वर्ग MyClass करने के लिए IMyInterface को लागू नहीं किया है, आप इस मुद्दे को मिलता है। आशा है कि यह आपके लिए भी हल हो ...

0

मेरी स्थिति में, मैंने बूटस्ट्रैपर को जेनेरिक संस्करण के बिना अपने स्वयं के संकल्प को कार्यान्वित किया था, इसलिए यह माइक्रोसॉफ्ट की यूनिटी रिसोलव नहीं मिला। उचित उपयोग जोड़ना चाल था।

संबंधित मुद्दे