ASP.NET과 종속성 삽입에서 분리가 어떻게 작동하는지 파악하려고합니다.인터페이스, 비즈니스 로직 및 Autofac을 사용하는 global.asax
- ASP.NET 클라이언트
- BusinessLogic 클래스 LIB (BL)
- 통합 클래스 LIB (모델, 인터페이스) 서비스는
- 공유를 참조 호출
나는 네 개의 프로젝트가
통합 중에 다른 서비스를 호출하는 저장소가 있습니다. 저장소 "MyRepository"는 Shared에 배치 된 "IMyRepository"인터페이스를 구현하고 Shared에도 배치 된 객체를 반환합니다.
엄밀히 말하면 클라이언트에서 통합 프로젝트에 대한 참조/종속성을 좋아하지 않지만 모든 통신은 BL을 통해 이루어져야합니다. 클라이언트의 Global.asax에에서
, 나는 Autofacvar builder = new ContainerBuilder();
builder.RegisterModule(new AutofacWebTypesModule());
builder.RegisterControllers(typeof(MvcApplication).Assembly);
builder.RegisterType<MyRepository>().As<IMyRepository>().InstancePerHttpRequest();
내 유형을 등록 그러나이 MyRepository의 구현을위한 통합 프로젝트를 참조하는 클라이언트 프로젝트를 필요로한다. 이런 식으로해야할까요?
어떻게 클라이언트에서 통합으로의 참조를 가져 오지 않고 분리를 깨끗하게 유지할 수 있습니까?
내 실제 프로젝트는 이보다 훨씬 더 큰 규모이기 때문에 의존성을 해결하려고 노력 중입니다.
시간 내 주셔서 감사합니다.
관련 : http://stackoverflow.com/questions/9501604/ioc-di-why-do-i-have-to-reference-all-layers-assemblies-in-entry-application – Steven