我正在尝试使用 ninject 根据 url 动态指定连接字符串。
我正在使用使用 webActivator 的 ninject.mvc nuget 包。
我的代码如下:
我的注射:
kernel.Bind<IUnitOfWork>().To<UnitOfWork>()
.WithConstructorArgument("connectionString", MvcApplication.GetConnectionStringName());
我的全球.asax
private static HttpContext _context;
public static string GetConnectionStringName() {
var subDomain = String.Empty;
if (_context != null) {
subDomain = _context.Request.Url.SubDomain();
}
return String.Format("{0}ConnectionString", subDomain);
}
问题是 _context(在我的 Application_BeginRequest 中设置)始终为空,因为 WebActivator 在 application_start 之前运行。
是否可以在 ninject 中指定在需要MvcApplication.GetConnectionStringName()
a时而IUnitOfWork
不是在应用程序启动时调用?
对我正在做的事情有更好的方法吗?
谢谢