Bitte kann jemand beraten, ob es möglich ist, Verbindungszeichenfolgen für einen DbContext mit Ninject Bindung, basierend auf Current Culture zu wechseln? Mein aktueller (nicht funktionierender) Kabeljau ist wie folgt.Switch Verbindungszeichenfolge basierend auf Kultur bei der Verwendung von NInject
private static IKernel CreateKernel()
{
var kernel = new StandardKernel();
try
{
kernel.Bind<Func<IKernel>>().ToMethod(ctx =>() => new Bootstrapper().Kernel);
kernel.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();
RegisterServices(kernel);
return kernel;
}
catch
{
kernel.Dispose();
throw;
}
}
private static string GetCultureBasedConnectionString()
{
string culture = "de-DE"; // TODO Replce with Thread.CurrentThread.CurrentCulture.Name
string cultureBasedConnectionString = ConnectionStringHelper.GetConnectionStringWithCulture(culture);
return cultureBasedConnectionString;
}
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<ApplicationDb>().To<ApplicationDb>()
.InRequestScope()
.WithConstructorArgument("connectionString", context => GetCultureBasedConnectionString());
.
.
.
}
Dies wird hier auf das Beispiel basiert, Ninject - dynamically specifying a connection string based on a sub domain, aber es ruft nicht außer auf jede Anfrage an meine GetCultureBasedConnectionString()
Verfahren durch, wenn die Anwendung startet ...
Ich habe hier gelesen, so dass Verwenden von NInjects Die Methode Rebind() ist nicht gut.
This SO thread brachte mich auch nicht in die richtige Richtung.