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

时间:2014-04-10 23:20:27

标签: c# domain-driven-design domain-events

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

public class SomeHandler : IHandler<SomeEvent>
{
   public SomeHandler()
   {
      //whatever init code
   }

   public void Handle(SomeArgs args)
   {
       //Common code
   }
}

那么使用相同的Handler处理多个事件的最佳方法是什么? 感谢

1 个答案:

答案 0 :(得分:3)

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