C# 统一DI配置
我是Unity DI的新手,在解决依赖关系时遇到了一个错误。错误消息显示“当前类型Data.Core.Repository.ILogger是一个接口,无法构造。是否缺少类型映射?” 配置和代码如下所示 配置C# 统一DI配置,c#,unitydi,C#,Unitydi,我是Unity DI的新手,在解决依赖关系时遇到了一个错误。错误消息显示“当前类型Data.Core.Repository.ILogger是一个接口,无法构造。是否缺少类型映射?” 配置和代码如下所示 配置 <configSections> <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection,Microsoft.Practic
<configSections>
<section name="unity"
type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection,Microsoft.Practices.Unity.Configuration"/>
</configSections>
<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
<assembly name ="BusinessLogic"/>
<assembly name ="Data.Core"/>
<namespace name="Data"/>
<namespace name="Data.Core"/>
<namespace name="Data.Core.Implimentation"/>
<namespace name="Data.Core.Repository"/>
<namespace name="BusinessLogic" />
<typeAliases>
<typeAlias alias="Logger1" type="Data.Core.Implimentation.Logger1,Data.Core.Implimentation" />
<typeAlias alias="Logger2" type="Data.Core.Implimentation.Logger2,Data.Core.Implimentation" />
<typeAlias alias="ILogger" type="Data.Core.Repository.ILogger,Data.Core.Repository" />
</typeAliases>
<container>
<register type="ILogger" mapTo="Logger2" name="Loggerxcs" >
</register>
</container>
当我试着用下面的方法从c代码中解析出深度时,一切都很好
IUnityContainer container = new UnityContainer();
container.RegisterType<ILogger, Logger2>();
IUnityContainer container=newunitycontainer();
container.RegisterType();
但是当我把它移动到config时,我得到了上面的错误。提前感谢。问题在于,在配置版本中,您已将映射命名为“Loggerxcs” 但是,LoggerBL将一个未命名的ILogger作为其参数 除去
name="Loggerxcs"
根据您的配置,您应该很好 问题在于,在配置版本中,您已将映射命名为“Loggerxcs”) 但是,LoggerBL将一个未命名的ILogger作为其参数 除去
name="Loggerxcs"
根据您的配置,您应该很好 你好@RB。非常感谢您的更新。但是我已经加载了配置,您可以在我的前端代码(上面发布)中找到它,“IUnityContainer container=new UnityContainer().LoadConfiguration(section);”Hi@RB。非常感谢您的更新。但是我已经加载了配置,您可以在我的前端代码(上面发布)中找到它,“IUnityContainer container=new UnityContainer().LoadConfiguration(section);”完美!非常感谢你。。这就是问题所在,太好了!非常感谢你。。这就是问题所在。
name="Loggerxcs"