OWIN ve IoC'yi kullanıyorum ve şimdi API'mi kimin aradığını belirleyen bir HTTP üstbilgisine dayanan Simple Injector tarafından çözülen dinamik bir bağlamı uygulamam gerekiyor. Bu yaklaşım en iyisi olmayabilir, bu yüzden başka olası çözümlere de açığım.HTTP üstbilgisine bağlı olarak bir OWIN ortamında dinamik bağlantı dizesi nasıl yapılandırılır?
İşte benim Owin başlangıç sınıfı var:
public void Configuration(IAppBuilder app)
{
var httpConfig = new HttpConfiguration();
var container = new Container();
string connectionString = string.Empty;
container.Options.DefaultScopedLifestyle = new WebApiRequestLifestyle();
ConfigureOAuthTokenGeneration(app);
ConfigureOAuthTokenConsumption(app);
app.Use(async (context, next) =>
{
var customHeader = context.Request.Headers.Get("customHeader");
connectionString = "conStr";//get con based on the header, from a remote DB here
await next.Invoke();
});
app.UseOwinContextInjector(container);
container.Register<DbContext>(() => new MyDynamicContext(connectionString),
Lifestyle.Scoped);
//container.Register ...;
container.Verify();
httpConfig.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(container);
ConfigureWebApi(httpConfig);
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
app.UseWebApi(httpConfig);
}
karşılaştığım sorun DI çerçeve örneğini oluşturur bağlantı dizesi her zaman boş olmasıdır.
Herhangi bir yardım için teşekkür ederiz.