首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在域层内集成DI容器。域事件

在域层内集成DI容器。域事件
EN

Stack Overflow用户
提问于 2012-05-04 15:35:12
回答 1查看 909关注 0票数 0

跟随文章:http://www.udidahan.com/2009/06/14/domain-events-salvation/,我们可以看到DomainEvents实现使用了DI容器

代码语言:javascript
复制
public static IContainer Container { get; set; }

然后

代码语言:javascript
复制
if(Container != null) {
    foreach(var handler in Container.ResolveAll<Handles<T>>()) handler.Handle(args);
}

我是否应该将DI容器集成到存储域对象的同一个程序集中,或者我是否可以将Container.ResolveAll<Handles<T>>()外部化/抽象化?(在我之前的经验中,我把所有的DI-related东西都放到了global.asax.cs中)。

从技术上讲,我只熟悉Ninject容器,但可能会理解这个概念,所以非常感谢您的建议/插图。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-04 17:40:55

不不用了。我会使DomainEvents及其方法成为非静态的,并使用容器来创建它。一个像样的容器将创建和初始化句柄及其依赖关系,并允许您在不引用容器的情况下调用事件处理程序。

唯一的问题是事件处理程序的注册。为此,我使用Bootstrapper调用IUnityRegistration的实例并配置UNITY。我开始使用CommonServiceLocator来减少依赖。甚至在最近,我切换到MEF来一起去掉注册类。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10444646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档