[英]how to install dependencies with castle windsor in a layered architecture
我在MVC项目中将Castle Windsor用于ioc。
我的架构基本上是Web-> Services-> Data
控制器将服务作为依赖项。 服务具有存储库作为数据层中的依赖项。
我的Web层没有对数据层的引用。 我的问题是我试图注册我的存储库,这是我的服务的依赖项。 如果我在服务层中有一个单独的容器来注册存储库,我应该如何引导它?
否则我可能会以错误的方式进行操作。
这个怎么样。 缺点是您需要对存储库dll的名称进行硬编码,但是您始终可以将其移动到web.config等,这样会更加简洁。
IWindsorContainer container = new WindsorContainer();
// Register repositories
_container.Register(
AllTypes.Pick()
.FromAssemblyNamed("MyDataLayerAssembly")
.WithService
.DefaultInterface());
// Register services
_container.Register(
AllTypes.Pick()
.FromAssemblyNamed(typeof(ISomeService).Assembly.GetName().Name)
.WithService
.DefaultInterface());
ControllerBuilder.Current.SetControllerFactory(new WindsorControllerFactory(container));
但是,您可能只需要精确调整Register()
方法中传递的内容以适合您的需求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.