title: Impossible to have two sagas that handle the same message type
body: <p>I have 2 different sagas (I mean saga types) that handle the same message.</p>
  
  <pre><code>     public class AttachMessageToBugSaga : TpSaga&lt;AttachMessageToBugSagaData&gt;, IAmStartedByMessages&lt;MessageIsNotAttached&gt;, IHandleMessages&lt;MessageAttachedToGeneralMessage&gt;
      {
          public override void ConfigureHowToFindSaga()
          {
              ConfigureMapping&lt;MessageAttachedToGeneralMessage&gt;(
               saga =&gt; saga.Id,
               message =&gt; message.SagaId
               );
          }
          public void Handle(MessageIsNotAttachedToBug message)
          {
              Send(new AttachMessageToGeneralCommand { MessageId = 66, GeneralId = 13 });
          }
  
          public void Handle(MessageAttachedToGeneralMessage message)
          {
              //do some stuf fhere
          }
      }
  
      public class AttachMessageToBugSagaData : IContainSagaData
      {
          public Guid Id { get; set; }
          public string Originator { get; set; }
          public string OriginalMessageId { get; set; }
      }
  
      public class AttachMessageToRequestSaga : TpSaga&lt;AttachMessageToRequestSagaData&gt;, IAmStartedByMessages&lt;MessageIsNotAttachedToRequest&gt;, IHandleMessages&lt;MessageAttachedToGeneralMessage&gt;
      {
          public override void ConfigureHowToFindSaga()
          {
              ConfigureMapping&lt;MessageAttachedToGeneralMessage&gt;(
               saga =&gt; saga.Id,
               message =&gt; message.SagaId
               );
          }
  
          public void Handle(MessageIsNotAttachedMessageToRequest message)
          {
              //do some stuff here
          }
  
          public void Handle(MessageAttachedToGeneralMessage message)
          {
              //do some stuff here
          }
      }
  
      public class AttachMessageToRequestSagaData : IContainSagaData
      {
          public Guid Id { get; set; }
          public string Originator { get; set; }
          public string OriginalMessageId { get; set; }
      }
  </code></pre>
  
  <p>When I run the sample I get an exception :</p>
  
  <p>System.InvalidCastException: Unable to cast object of type 'MyCustomPlugin.AttachMessageToGeneralSagaData' to type 'MyCustomPlugin.AttachMessageToRequestSagaData'.</p>
  
  <p>I understand why it happens, but I still need some workaround. I tried to implement my own IFindSagas class : </p>
  
  <pre><code>public class SagaFinder : IFindSagas&lt;AttachMessageToGeneralSagaData&gt;.Using&lt;MessageAttachedToGeneralMessage&gt;,
  IFindSagas&lt;AttachMessageToRequestSagaData&gt;.Using&lt;MessageAttachedToGeneralMessage&gt;,
  IFindSagas&lt;AttachMessageToRequestSagaData&gt;.Using&lt;MessageIsNotAttachedToRequest&gt;,
  IFindSagas&lt;AttachMessageToRequestSagaData&gt;.Using&lt;MessageIsNotAttachedToBug&gt;
  {
      AttachMessageToGeneralSagaData IFindSagas&lt;AttachMessageToGeneralSagaData&gt;.Using&lt;MessageAttachedToGeneralMessage&gt;.FindBy(MessageAttachedToGeneralMessage message)
      {
          return ObjectFactory.GetInstance&lt;AttachMessageToGeneralSagaData&gt;();
      }
  
      AttachMessageToRequestSagaData IFindSagas&lt;AttachMessageToRequestSagaData&gt;.Using&lt;MessageAttachedToGeneralMessage&gt;.FindBy(MessageAttachedToGeneralMessage message)
      {
          return ObjectFactory.GetInstance&lt;AttachMessageToRequestSagaData&gt;();
      }
  
      public AttachMessageToRequestSagaData FindBy(MessageIsNotAttachedToRequest message)
      {
          return new AttachMessageToRequestSagaData();
      }
  
      public AttachMessageToRequestSagaData FindBy(MessageIsNotAttachedToBug message)
      {
          return new AttachMessageToRequestSagaData();
      }
  }
  </code></pre>
  
  <p>But I do not get into my finders for "MessageAttachedToGeneralMessage".
  Please tell me if there is some other workaround, or how to make this example working.</p>