动态注入来自程序集的存储库
|
我在用着:
EF 4.1
MVC 3
Ninject
Ninject.Extensions.Convention
Ninject.Web.Mvc
该应用程序使用存储库模式。
我的存储库可以这样注入:
kernel.Bind<ICategoryRepository>().To<CategoryRepository>().InRequestScope();
一切都很好:-)
但是我一直想通过在我的global.asax.cs中从这样的程序集动态注入来进一步
private static void LoadFromAssemblies(IKernel kernel)
{
Uri uri = new Uri(
Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase) +
@\"\\Extensions\");
DirectoryInfo directoryInfo = new DirectoryInfo(uri.LocalPath);
var scanner = new AssemblyScanner();
scanner.FromAssembliesInPath(directoryInfo.FullName);
scanner.BindWith<DefaultBindingGenerator>();
kernel.Scan(scanner);
//var foo = kernel.Get<ICategoryRepository>();
}
在运行时确实注入了存储库,但是由于某种原因,该实体从未被保存-也许是因为存储库无法告知是否存在更改?还是没有在整个请求中维护工作单元?
我的问题是:从程序集动态加载时,如何实现\“ InRequestScope \”?我是否必须以某种方式注入内核?
没有找到相关结果
已邀请:
1 个回复
熊融炭臀陛
)回答并解决了该问题(从@John Barrett的评论复制):