在c#类库DLL中注册域事件处理程序的位置

在c#类库DLL中注册域事件处理程序的位置,c#,events,domain-driven-design,C#,Events,Domain Driven Design,我有一个这样设置的解决方案: 解决方案 Visual Basic ASP.NET Web应用程序(.NET4) C#类库(.NET2) 类库DLL作为引用包含在web应用程序中 类库广泛使用域驱动的体系结构。现在,我正在添加域事件,方法是 公共静态类DomainEvents { [ThreadStatic]//这样每个线程都有自己的回调 私有静态列表操作; 公共静态IContainer容器{get;set;}//与前面一样 //为给定域事件注册回调 公共静态无效寄存器(操作回调),其中T

我有一个这样设置的解决方案:

  • 解决方案
  • Visual Basic ASP.NET Web应用程序(.NET4)
  • C#类库(.NET2)
类库DLL作为引用包含在web应用程序中

类库广泛使用域驱动的体系结构。现在,我正在添加域事件,方法是

公共静态类DomainEvents
{ 
[ThreadStatic]//这样每个线程都有自己的回调
私有静态列表操作;
公共静态IContainer容器{get;set;}//与前面一样
//为给定域事件注册回调
公共静态无效寄存器(操作回调),其中T:IDomainEvent
{
if(actions==null)
actions=新列表();
actions.Add(回调);
}
//清除传递给当前线程上寄存器的回调
公共静态void ClearCallbacks()
{
actions=null;
}
//引发给定的域事件
公共静态无效提升(T参数),其中T:IDomainEvent
{
if(容器!=null)
foreach(Container.ResolveAll()中的var处理程序)
handler.Handle(args);
如果(操作!=null)
foreach(行动中的var行动)
如果(行动就是行动)
((动作)动作)(args);
}
} 

我需要在类库中注册域事件处理程序。类库没有
global.asax
,因此我无法使用
Application\u Start
。在类库中注册域事件处理程序的最佳位置是哪里?

您的应用程序负责将所有内容粘合在一起

您可以将所有内容连接到
Application\u Start
上,或者从那里调用类库中注册处理程序的函数

new Bootstrapper().Bootstrap();
new Bootstrapper().Bootstrap();