C# 4.0 通过DI和Unity实现层的分离将导致N层中的层分离
这是一个新手问题,我正在使用DI通过配置在运行时解析接口的对象C# 4.0 通过DI和Unity实现层的分离将导致N层中的层分离,c#-4.0,architecture,dependency-injection,unity-container,n-tier-architecture,C# 4.0,Architecture,Dependency Injection,Unity Container,N Tier Architecture,这是一个新手问题,我正在使用DI通过配置在运行时解析接口的对象 <unity> <containers> <container> <types> <type type="BusinessLayer.IBAL, BusinessLayer, Version=1.0.0.0, Culture=neutral" mapTo="BusinessLayer.BAL, Bus
<unity>
<containers>
<container>
<types>
<type
type="BusinessLayer.IBAL, BusinessLayer, Version=1.0.0.0, Culture=neutral"
mapTo="BusinessLayer.BAL, BusinessLayer, Version=1.0.0.0, Culture=neutral" />
<type
type="DataAccessLayer.IDAL, DataAccessLayer"
mapTo="DataAccessLayer.DAL, DataAccessLayer, Version=1.0.0.0, Culture=neutral" />
<type
type="DataAccessLayer.IDbContext, DataAccessLayer, Version=1.0.0.0, Culture=neutral"
mapTo="DataAccessLayer.DbContext, DataAccessLayer, Version=1.0.0.0, Culture=neutral" />
</types>
</container>
</containers>
</unity>
上面的配置在UI层web.config中
在UI layer web.config中指定要创建的DAL实例是否违反层分离概念
由于所有层都应该是独立的……如果在UI layer web.config中提到DAL、BAL依赖关系,它会违反分离原则吗?您需要在某个地方引导容器。在web应用程序中,某个地方通常是主web项目。如果您使用的是n层体系结构,那么您(希望)不是直接从UI使用DAL类,而是从BL类使用DAL类 仅在web.config中引用DAL类并不违反分层体系结构
您可能需要阅读上的这篇文章以获得进一步的解释。您需要在某个地方引导您的容器。在web应用程序中,某个地方通常是主web项目。如果您使用的是n层体系结构,那么您(希望)不是直接从UI使用DAL类,而是从BL类使用DAL类 仅在web.config中引用DAL类并不违反分层体系结构
您可能需要阅读上的这篇文章以获得进一步的解释。防止将完整的DI注册放在XML配置文件中。对于可维护性,在代码中配置容器有更好的效果。防止将完整的DI注册放在XML配置文件中。对于可维护性,在代码中配置容器有更好的结果。