Обычно я создаю 1 класс, реализующий Saga‹T›:
public class MyClass1 : Saga<MySagaData>;
{
………
}
Код MySagaData:
[SagaIndex("ExternalCombinedIdentifier")]
[SagaIndex("MyOwnId")]
public class MySagaData: IContainSagaData
{
public MySagaData()
{
……
}
public Guid Id { get; set; }
public string Originator { get; set; }
public string OriginalMessageId { get; set; }
……
}
Теперь мне нужно использовать ту же Saga (Saga‹MySagaData›) в другом классе, назовем его MyClass2.
Если я реализую MyClass2 следующим образом: открытый класс MyClass2 : Saga‹MySagaData› { ……… }
будут ли свойства ACID Saga‹MySagaData› присутствовать для MyClass1 и MyClass2, как если бы Saga‹MySagaData› просто использовалась в 1 классе? И в свойствах ACID я включаю, например, откат обработчика сообщений и повторную попытку в MyClass1, если другой обработчик сообщений для другого класса (MyClass2) только что зафиксировал изменения в MySagaData?