Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 通过DI和Unity实现层的分离将导致N层中的层分离_C# 4.0_Architecture_Dependency Injection_Unity Container_N Tier Architecture - Fatal编程技术网

C# 4.0 通过DI和Unity实现层的分离将导致N层中的层分离

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

这是一个新手问题,我正在使用DI通过配置在运行时解析接口的对象

<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配置文件中。对于可维护性,在代码中配置容器有更好的结果。