【发布时间】:2011-02-21 22:58:16
【问题描述】:
昨天我已经实现了代码:
CustomerProductManager productsManager = container.Resolve<CustomerProductManager>();
它是可编译和工作的。
今天(可能我修改了一些东西)我经常收到错误:
非泛型方法 'Microsoft.Practices.Unity.IUnityContainer.Resolve(System.Type, 字符串,参数 Microsoft.Practices.Unity.ResolverOverride[])' 不能与类型参数一起使用
我的同事有相同的源代码并且没有相同的错误。为什么?如何解决问题?
附:
行“使用 Microsoft.Practices.Unity;”存在于使用部分中。
我尝试用非通用版本替换通用版本:
CustomerProductManager productsManager = (CustomerProductManager)container.Resolve(typeof(CustomerProductManager));
又遇到了一个错误:
“解决”方法没有重载 '1' 参数
似乎其中一个程序集没有被引用..但是哪一个?我有两个参考: 1.Microsoft.Practices.Unity.dll 2. Microsoft.Practices.ServiceLocation.dll
P.P.S.我看到了类似的问题http://unity.codeplex.com/WorkItem/View.aspx?WorkItemId=8205,但它被解决为“不是错误”
任何想法都会有所帮助
【问题讨论】:
-
你在使用 Unity 2.0 吗?
-
您可能会发现是 Power Commands 插件使用子句删除未使用的命名空间;当您的代码处于不可编译状态并且您可能有在编辑期间保存文件的习惯时,命名空间是“未使用的”——并且插件在保存时删除了额外的使用。
标签: c# .net generics unity-container compilation