域驱动设计-如何在c#中处理两个或多个域事件

本文关键字:两个 事件 处理 | 更新日期: 2023-09-27 17:57:53

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

public class SomeHandler : IHandler<SomeEvent>
{
   public SomeHandler()
   {
      //whatever init code
   }
   public void Handle(SomeArgs args)
   {
       //Common code
   }
}

那么,用同一个处理程序处理多个事件的最佳方法是什么呢?感谢

域驱动设计-如何在c#中处理两个或多个域事件

IHandler<SomeEvent>是一个接口,因此您可能可以实现多个接口:

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
   }
}