2013-05-21 62 views
1

我使用的项目下面的代码与企业库6和得到这个错误:错误在微软企业库6 Unitycontainer

“的类型或命名空间名称EnterpriseLibraryCoreExtension'不能 找到”

如何修复此错误?

var container = new Unitycontainer().Addnewextension<EnterpriseLibraryCoreExtension>(); 

container.Registertype<Ilog, logger_enterprise>(); 

var logger = container.resolve<Ilog>(); 
logger.log("message"); 
+1

做你试试这个'使用Microsoft.Practices.EnterpriseLibrary.Common.Configuration.Unity;' – Saravanan

+0

如果你没有使用'还要检查的.Net Framework 4.0客户端Profile'您在Microsoft.Practices.EnterpriseLibrary项目 – Saravanan

+0

.Common.Configuration.Unity命名空间未找到企业库中的EnterpriseLibraryCoreExtension6 –

回答

1

根据Grigori Melnikrelease announcement page

企业库块不再使用统一的容器来解决实例。您应该从代码中移除对Unity容器的AddNewExtension方法的所有调用。如果您的应用程序当前从容器中解析了Enterprise Library对象,则必须在Unity容器中手动注册所需的类型,或者修改应用程序以使用块中的静态外观来配置和检索应用程序使用的Enterprise Library对象。

此外,对于其他更改,请不要忘记检查change logMigration Guide

+0

坦克。但是如何用StructureMap容器​​更改此代码?我在logger_enterprise中使用Logwriter属性。 –

+0

那么,你现在从Unity转换到StructureMap了吗? 我仍在使用企业库5.我会看看企业库6源代码,看看它是如何工作的,或者只是在容器中注册一个LogWriter实例。 –