Приведенный ниже код выведет:
Event published
Command executed
Используя System.Transactions, как я могу включить EventPublisher в родительскую транзакцию, чтобы он выполнялся только при завершении CommandHandler.Поэтому вывод будет:
Command executed
Event published
Код:
class Program
{
static void Main(string[] args)
{
var handler = new CommandHandler();
handler.Execute();
Console.ReadLine();
}
}
public class CommandHandler
{
public void Execute()
{
var foo = new Foo();
foo.DoSomething();
Console.WriteLine("Command executed");
}
}
public class EventPublisher
{
public void PublishEvent()
{
Console.WriteLine("Event published");
}
}
public class Foo
{
public void DoSomething()
{
new EventPublisher().PublishEvent();
}
}