Yesterday I've implemented the code:
CustomerProductManager productsManager = container.Resolve<CustomerProductManager>();
It was compilable and working.
Today (probably I've modified something) I am constantly getting the error:
The non-generic method 'Microsoft.Practices.Unity.IUnityContainer.Resolve(System.Type, string, params Microsoft.Practices.Unity.ResolverOverride[])' cannot be used with type arguments
My collegue has the same source code and doesn't have same error. Why? How to resolve the problem?
P.S.
line "using Microsoft.Practices.Unity;" is present in usings section.
I've tried to replace generic version with non-generic one:
CustomerProductManager productsManager = (CustomerProductManager)container.Resolve(typeof(CustomerProductManager));
And got another error:
No overload for method 'Resolve' takes '1' arguments
It seems like one of the assemblies is not referenced.. but which one? I have 2 of them referenced: 1. Microsoft.Practices.Unity.dll 2. Microsoft.Practices.ServiceLocation.dll
P.P.S. I've saw similar problem http://unity.codeplex.com/WorkItem/View.aspx?WorkItemId=8205 but it is resolved as "not a bug"
Any thought will be helpful
I had the same problem and found the "fix" looking at Prism sample code files. Looks like, even if it is not a dll in Unity V2 you have to add a reference in your class to: Microsoft.Practices.Unity
my complete "using" section is as follow
using System;
using System.Windows;
using Microsoft.Practices.Composite.Modularity;
using Microsoft.Practices.Unity;
using Microsoft.Practices.Composite.UnityExtensions;
I'm not sure if you are using Silverlight, but the generic version for Container.Resolve IS in Microsoft.Practices.Unity.
Microsoft no longer owns Unity and it's in version 5, the namespace is now:
using Unity;
Ensure that is in your using section when using:
container.Resolve<T>();
I faced this problem and none of this answers did not help me. I was getting the compile time error
Unknown method RegisterType() of Microsoft.Practices.Unity.IUnityContainer
for my below code.
Container.RegisterType<IMyInterface, MyClass>();
I found that if you did not implement IMyInterface to the class MyClass, you get this issue.
Hope it resolves for you too...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With