Есть ли реализация ISagaDbContextFactory для StructureMap? Я видел реализацию AutofacSagaDbContextFactory для Autofa c, и я написал бы свою собственную для StructureMap, но я не знаю, какую полезную нагрузку искать, чтобы получить экземпляр вложенного контейнер, который я ожидал, что masstransit создал ?? Я безуспешно попробовал следующее
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 решил мою проблему.