Есть ли реализация ISagaDbContextFactory для StructureMap? Я видел реализацию AutofacSagaDbContextFactory для Autofac, и я бы написал свою собственную для StructureMap, но я не знаю, какую полезную нагрузку искать, чтобы получить экземпляр вложенного strong> контейнер, который я ожидал создать с помощью масстранзита ?? Я безуспешно пробовал следующее
public class StructureMapSagaDbContextFactory<TSaga> : ISagaDbContextFactory<TSaga> where TSaga : class, ISaga
{
...
public DbContext CreateScoped<T>(ConsumeContext<T> context) where T : class
{
if (context.TryGetPayload(out IContainer container)) // I don't know what to look for in the payload
return currentScope.GetInstance<MyDbContext>();
return Create();
}
...
}
MyDbContext зарегистрирован как область действия моего контейнера, поэтому ему нужен новый экземпляр для каждой области действия экземпляра саги, то есть аналогично экземпляру DbContext для каждого веб-запроса, если бы это было веб-приложение, но для саги masstransit в этом случае.
ОБНОВЛЕНИЕ: класс ContainerSagaDbContextFactory решил мою проблему.