현재 culture를 기반으로 Ninject 바인딩을 사용하여 DbContext에 대한 연결 문자열을 전환 할 수 있다면 누구나 조언 해 주실 수 있습니까? 현재 (비 작동) 대구는 다음과 같습니다. NInject를 사용할 때 culture에 따라 연결 문자열을 바꿈
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());
.
.
.
}
이
여기 예를 들어, Ninject - dynamically specifying a connection string based on a sub domain를 기반으로하지만, 내가 그 그래서 여기에 읽고 ... 응용 프로그램이 시작될 때를 제외하고 각 요청에 대한 내GetCultureBasedConnectionString()
방법
를 통해 호출하지 않습니다 NInjects Rebind() 메소드를 사용하면 좋지 않습니다.
This SO thread도 올바른 방향으로 나를 데려 오지 못했습니다.