【发布时间】:2011-08-11 11:21:28
【问题描述】:
我正在尝试使用 ninject 根据 url 动态指定连接字符串。
我正在使用使用 webActivator 的 ninject.mvc nuget 包。
我的代码如下:
我的注射:
kernel.Bind<IUnitOfWork>().To<UnitOfWork>()
.WithConstructorArgument("connectionString", MvcApplication.GetConnectionStringName());
我的 global.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 中指定在需要 IUnitOfWork 而不是在应用程序启动时调用 MvcApplication.GetConnectionStringName()?
对我正在做的事情有更好的方法吗?
谢谢
【问题讨论】:
标签: asp.net-mvc dependency-injection ninject ninject.web.mvc