IUnityContainer.Resolve <T>抛出声明它不能用于types参数的错误

昨天我已经实现了代码:

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

这是可编译和工作。

今天(可能我已经修改了一些东西)我不断得到错误:

非generics方法'Microsoft.Practices.Unity.IUnityContainer.Resolve(System.Type,string,params Microsoft.Practices.Unity.ResolverOverride [])'不能与types参数一起使用

我的同事有相同的源代码,并没有相同的错误。 为什么? 如何解决这个问题?

PS

行“使用Microsoft.Practices.Unity;” 存在于使用部分中。

我试图用非通用版本replace通用版本:

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

并得到另一个错误:

方法'Resolve'没有重载需要'1'参数

看起来像其中一个组件没有引用..但是哪一个? 我有其中2引用:1. Microsoft.Practices.Unity.dll 2. Microsoft.Practices.ServiceLocation.dll

PPS我看到类似的问题http://unity.codeplex.com/WorkItem/View.aspx?WorkItemId=8205,但它被parsing为“不是一个错误”

任何想法都会有所帮助

我有同样的问题,并发现在“棱镜”示例代码文件的“修复”。 看起来,即使它不是在Unity V2中的DLL,你必须在你的类中添加一个引用: Microsoft.Practices.Unity

我完整的“使用”部分如下

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

我不确定您是否使用Silverlight,但在Microsoft.Practices.Unity中使用Container.Resolve IS的通用版本。

我面临这个问题,没有任何这个答案没有帮助我。 我得到编译时错误

Microsoft.Practices.Unity.IUnityContainer的未知方法RegisterType()

为我的下面的代码。

Container.RegisterType<MyInterface, MyClass>();

我发现如果你没有实现类MyClass ,你会遇到这个问题。 希望它也能为你解决

在我的情况下,我使用从抽象基类inheritance的Unity来包装类,而且这个基类没有无参数的构造函数。 一旦我改变我的代码使用基类的无参数构造函数,问题就消失了。

在我的情况下,我让Bootstrapper在没有通用版本的情况下实现自己的Resolve,所以找不到Microsoft的Unity Resolve。 添加正确的使用做了诀窍。