目立たない NServiceBus サンプルでは、次のように、エンドポイント構成でインバウンド メッセージを ICommand / IEvent / IMessage にマップする方法を説明しています。
.DefiningCommandsAs(t => t.Namespace != null && t.Namespace.EndsWith("Commands"))
.DefiningEventsAs(t => t.Namespace != null && t.Namespace.EndsWith("Events"))
.DefiningMessagesAs(t => t.Namespace == "Messages")
しかし、次の例では、マーカー インターフェイスを作成し、すべてのイベントでそれを実装したいと考えています。
public interface IAmSomeEvent
{
}
public class SomethingImportantHappenned : IAmSomeEvent
{
public string blah { get; set; }
}
そして、次のようにします。
.DefiningEventsAs(t => t.GetInterfaces().Contains(typeof(IAmSomeEvent)))
しかし、これの問題は機能しないことです (NSB はこれを IEvent にマップしません)。
NSB が json (または XML) のストリームを受信しているだけなので、これが機能しない理由がちょっとわかります。そのため、元の型がたまたま何らかのインターフェイスなどを実装することはあまり気にしません。しかし、それは非常に優れた機能になります。
これを達成する方法について何か提案はありますか?
どうもありがとう