如何在c#中处理两个或多个domainevents?
在C#中,我有一个场景,其中至少在两个地方引发了不同的域事件,我希望一个单独的处理者使用相同的代码来处理它们(其他侦听器可能会执行特定于事件的代码)。 处理程序使用以下模式如何在c#中处理两个或多个domainevents?,c#,domain-driven-design,domain-events,C#,Domain Driven Design,Domain Events,在C#中,我有一个场景,其中至少在两个地方引发了不同的域事件,我希望一个单独的处理者使用相同的代码来处理它们(其他侦听器可能会执行特定于事件的代码)。 处理程序使用以下模式 public class SomeHandler : IHandler<SomeEvent> { public SomeHandler() { //whatever init code } public void Handle(SomeArgs args) {
public class SomeHandler : IHandler<SomeEvent>
{
public SomeHandler()
{
//whatever init code
}
public void Handle(SomeArgs args)
{
//Common code
}
}
公共类SomeHandler:IHandler
{
公共事务处理程序()
{
//不管初始化代码是什么
}
公共无效句柄(SomeArgs args)
{
//通用代码
}
}
那么,用同一个处理程序处理多个事件的最佳方法是什么?
谢谢IHandler
是一个接口,因此您可以实现多个接口:
public class SomeHandler : IHandler<SomeEvent>, IHandler<SomeOtherEvent>
{
public SomeHandler()
{
//whatever init code
}
public void Handle(SomeArgs args)
{
//Common code
}
public void Handle(SomeOtherArgs args)
{
//Common code
}
}
公共类SomeHandler:IHandler,IHandler
{
公共事务处理程序()
{
//不管初始化代码是什么
}
公共无效句柄(SomeArgs args)
{
//通用代码
}
公共无效句柄(SomeOtherArgs args)
{
//通用代码
}
}
IHandler
是一个接口,因此您可以实现多个接口:
public class SomeHandler : IHandler<SomeEvent>, IHandler<SomeOtherEvent>
{
public SomeHandler()
{
//whatever init code
}
public void Handle(SomeArgs args)
{
//Common code
}
public void Handle(SomeOtherArgs args)
{
//Common code
}
}
公共类SomeHandler:IHandler,IHandler
{
公共事务处理程序()
{
//不管初始化代码是什么
}
公共无效句柄(SomeArgs args)
{
//通用代码
}
公共无效句柄(SomeOtherArgs args)
{
//通用代码
}
}
IHandler
是一个接口,因此您可以实现多个接口:
public class SomeHandler : IHandler<SomeEvent>, IHandler<SomeOtherEvent>
{
public SomeHandler()
{
//whatever init code
}
public void Handle(SomeArgs args)
{
//Common code
}
public void Handle(SomeOtherArgs args)
{
//Common code
}
}
公共类SomeHandler:IHandler,IHandler
{
公共事务处理程序()
{
//不管初始化代码是什么
}
公共无效句柄(SomeArgs args)
{
//通用代码
}
公共无效句柄(SomeOtherArgs args)
{
//通用代码
}
}
IHandler
是一个接口,因此您可以实现多个接口:
public class SomeHandler : IHandler<SomeEvent>, IHandler<SomeOtherEvent>
{
public SomeHandler()
{
//whatever init code
}
public void Handle(SomeArgs args)
{
//Common code
}
public void Handle(SomeOtherArgs args)
{
//Common code
}
}
公共类SomeHandler:IHandler,IHandler
{
公共事务处理程序()
{
//不管初始化代码是什么
}
公共无效句柄(SomeArgs args)
{
//通用代码
}
公共无效句柄(SomeOtherArgs args)
{
//通用代码
}
}
愚蠢的决定,让事情简单化。我从未见过处理不同类型事件的处理程序。(除了使用事件基类(如果有)的属性之外)这不是真正的DDD。。它更EDA-也许需要重新标记?原因是在两个事件中都有共同的代码要执行,我不想重复它(干)。愚蠢的决定,保持简单。我从未见过处理不同类型事件的处理程序。(除了使用事件基类(如果有)的属性之外)这不是真正的DDD。。它更EDA-也许需要重新标记?原因是在两个事件中都有共同的代码要执行,我不想重复它(干)。愚蠢的决定,保持简单。我从未见过处理不同类型事件的处理程序。(除了使用事件基类(如果有)的属性之外)这不是真正的DDD。。它更EDA-也许需要重新标记?原因是在两个事件中都有共同的代码要执行,我不想重复它(干)。愚蠢的决定,保持简单。我从未见过处理不同类型事件的处理程序。(除了使用事件基类(如果有)的属性之外)这不是真正的DDD。。它更EDA-可能需要重新标记?原因是在两个事件中都有共同的代码要执行,我不想重复它(DRY)。这解决了它-谢谢。(我会考虑AYBE是否提出了一些更高的设计决定)。这解决了-谢谢。(我会考虑AYBE是否提出了一些更高的设计决定)。这解决了-谢谢。(我会考虑AYBE是否提出了一些更高的设计决定)。这解决了-谢谢。(我会考虑我是否得到了AYBE提出的一些更高的设计决定)。