Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在c#中处理两个或多个domainevents?_C#_Domain Driven Design_Domain Events - Fatal编程技术网

如何在c#中处理两个或多个domainevents?

如何在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) {

在C#中,我有一个场景,其中至少在两个地方引发了不同的域事件,我希望一个单独的处理者使用相同的代码来处理它们(其他侦听器可能会执行特定于事件的代码)。 处理程序使用以下模式

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提出的一些更高的设计决定)。