public class MySaga<TRequest, TResponse> : Saga<SagaData<TRequest>>,
IAmStartedByMessages<TRequest>,
IHandleMessages<AsyncResponse>,
IHandleTimeouts<TimeOut>
where TRequest : MyRequest
where TResponse : MyResponse, new()
{}
public class SagaData<T> : IContainSagaData
{
public Guid Id { get; set; }
public string Originator { get; set; }
public string OriginalMessageId { get; set; }
public T Request { get; set; }
}
Wired it up after my validation handler in orderspecifier
public class HandlersOrderSpecifier : ISpecifyMessageHandlerOrdering
{
public void SpecifyOrder(Order order)
{
order.Specify(First<ValidationHandler>.Then<MySaga<RequestType,ResponseType>>());
}
}
Only if I remove the generic implementation details it works, else I end up in SagaNotFoundHandler.