问题标签 [ninject-2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
nhibernate - Application_BeginRequest() 对象引用未设置为对象的实例
尝试创建连接时,我的 MVC 应用程序出现错误。我将 NHibenate 与 Ninject 一起使用。
Global.asax.cs
文件:
Web.config
文件:
这是错误消息:
c# - Ninject InThreadScope 绑定
我有一个 Windows 服务,其中包含一个文件观察程序,当文件到达时会引发事件。当一个事件被引发时,我将使用 Ninject 创建业务层对象,这些对象在它们内部具有对实体框架上下文的引用,该上下文也通过 Ninject 注入。在我的 Web 应用程序中,我总是使用 InRequestScope 作为上下文,这样在一个请求中,所有业务层对象都使用相同的实体框架上下文。在我当前的 Windows 服务场景中,将实体框架上下文绑定切换到 InThreadScope 绑定就足够了吗?
理论上,当服务中的事件处理程序触发它在某个线程下执行时,如果另一个文件同时到达,它将在另一个线程下执行。因此,这两个事件都不会共享实体框架上下文,本质上就像网络上的两个不同的 http 请求一样。
困扰我的一件事是这些线程范围对象的破坏,当您查看 Ninject wiki 时:
.InThreadScope()
- 每个线程将创建一个该类型的实例。
.InRequestScope()
- 每个网络请求都会创建一个该类型的实例,并在请求结束时销毁。
基于此,我了解 InRequestScope 对象将在请求结束时(或之后的某个时间点)被销毁(垃圾收集?)。然而,这并没有说明 InThreadScope 对象是如何被销毁的。回到我的示例,当文件观察程序事件处理程序方法完成时,线程消失(回到线程池?)注入的 InThreadScope-d 对象会发生什么?
编辑: 现在有一点很清楚,当使用 InThreadScope() 时,当文件观察程序的处理程序退出时,它不会破坏您的对象。我能够通过在文件夹中删除许多文件来重现这一点,最终我得到了相同的线程 id,这导致了与以前完全相同的实体框架上下文,所以这对于我的应用程序来说绝对是不够的。在这种情况下,5 分钟后进入的文件可能正在使用之前分配给同一线程的陈旧上下文。
ninject - 不支持 Ninject Given Path 的格式
当我直接从 VS2010 运行我的应用程序时,Ninject 初始化工作正常,但是如果我将应用程序部署到我们的自定义“插件”环境,当我运行应用程序并尝试初始化 Ninject 时,我会收到此错误。
初始化过程中发生错误
不支持给定路径的格式。
错误:不支持给定路径的格式。类型:NotSupportedException 位置:System.String CanonicalizePath(System.String, Boolean) 堆栈跟踪:在 System.Security.Util.StringExpressionSet.CanonicalizePath(String path, Boolean needFullPath) at System.Security.Util.StringExpressionSet.CreateListFromExpressions(String[] str, Boolean needFullPath) at System.Security.Permissions.FileIOPermission.AddPathList(FileIOPermissionAccess access, AccessControlActions control, String[] pathListOrig, Boolean checkForDuplicates, Boolean needFullPath, Boolean copyPathList) at System.Security.Permissions.FileIOPermission..ctor(FileIOPermissionAccess access , String[] pathList, Boolean checkForDuplicates, Boolean needFullPath) at System.IO.Path.GetFullPath(String path) at Ninject.Modules.ModuleLoader。0(字符串模式)在 System.Linq.Enumerable.d _14 2.Create 2.MoveNext()
at System.Linq.Lookup
[TSource](IEnumerable 1 source, Func
2 keySelector,Func 2 elementSelector, IEqualityComparer
1 比较器)在 System.Linq.GroupedEnumerable 3.GetEnumerator()
at Ninject.Modules.ModuleLoader.LoadModules(IEnumerable
1 模式)在 Ninject.KernelBase.Load(IEnumerable`1 filePatterns)在 Ninject.KernelBase..ctor(IComponentContainer components, INinjectSettings settings, INinjectModule[] modules) 在 Ninject.KernelBase..ctor(INinjectModule[] modules) 在 MyApp.Ioc.ResolveType.Initialize() 在 MyApp.Program.Run()
ninject - 将此 ninject 1.0 代码转换为 ninject 2.0
我正在尝试遵循本教程http://damianm.com/tech/nhibernate-mvc-and-ninject/
但我遇到了一些问题,我相信它们与发布 2.0 时所做的更改有关
我从未使用过 ninject 1.0,而且我使用 ninject 2.0 的时间不到一周,所以我发现很难转换。
我认为这
需要改为
这
到
这些我找不到它们会是什么
以上是我迄今为止确定的需要转换的内容。
我也在他的一个存储库类中看到了这一点
我不知道那究竟是为了什么。
asp.net-mvc-3 - 访问在基类的构造函数中使用属性注入定义的基类属性
我已经阅读了 ninject wiki 上的所有内容和许多帖子,但仍然不明白如何设置注入以便我可以引用此属性。我希望能够在基类构造函数中引用该属性,以便在创建任何控制器时最终设置一个通用的 ViewBag 属性。似乎实现 iInitializable 接口是正确的方法,但再次不确定如何执行此操作。另外,我选择不在基类构造函数中注入 IMyService 以简化派生类的编码。
我最近尝试的代码的简化版本:
ninject - Ninject 上下文绑定:我从哪里获得 Ninject.Conditions.dll
我在这里阅读了有关 ninjects 上下文绑定的信息:http://ninject.codeplex.com/wikipage?title=Contextual% 20Binding
并试图让它在我的项目中工作。文档声明我需要添加对我没有的 Ninject.Conditions.Dll 的引用。有人知道从哪里得到这个吗?
我已经在 github 上尝试过:https
://github.com/ninject/ninject
我使用下载链接获取 2.0.1.0 源并设法构建它们但没有 dll。
我在这里发现了一个类似的问题:我在哪里可以找到 ninject.web.mvc.dll?
以及带有指向构建服务器的链接的答案。我点击了链接,收到了团队城市的登录请求。我没有账户。
asp.net-mvc-3 - 使用控制器工厂和 NinjectHttpApplication 的区别?
使用 Ninject 2 MVC 3。如果我错了,请纠正我,但我看到了在 MVC 3 应用程序中使用 Ninject 的两种方式。我们可以使用一个新的控制器工厂,就像 ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory()); 或者使用 NinjectHttpApplication 然后配置内核。
我想知道使用控制器工厂和 NinjectHttpApplication 为 DI 配置绑定有什么区别?
设置 DI 的最佳位置是什么?
structuremap - Ninject 和 StructureMap 之间哪个更简单?
我想知道 Ninject 和 StructureMap 之间哪个更简单?使用它们时有什么我应该注意的吗?
谢谢。
silverlight-4.0 - ViewModel Dispose 未被调用
我们正在使用 Ninject 和 Caliburn.Micro 创建一个 MVVM WCF Silverlight 应用程序。我遇到的问题是我的视图模型的生命周期。
我创建了一个简单的 ninject 模块来绑定我的视图模型和 wcf 客户端。
在我的 IIdCardViewModel 中,我要求它从 IDisposable 继承,因为我想注册和取消注册 wcf 事件和一些本地非托管引用。
但是,从未调用过 Dispose。
我考虑添加一个停用来调用 dispose,如下所示:
但这迫使我添加两件事,在我的 IDCardModule 中的 Unload 覆盖,它检索对象并释放它:
以及 .InThreadScope() 或 .InSingletonScope() 到我在 Load 中的 Bind 方法。
有没有更简单的方法来强制禁用特定对象?还是我应该研究另一个 IOC 框架?
我调查了 IStartable 并遇到了类似的问题。同样,我深入阅读了Nate 的文章,其中他有一个激活块并将所有内容包装在 using 语句中。我的问题是我的视图模型可以长时间运行,我不相信他的解决方案会在这里工作。同样,拥有一个休眠并调用 GC.Collect 的特殊线程也不好闻。
asp.net - 在 Web 应用程序的 Appdomain 中使用 Ninject 和 WCF 服务?
据我了解,如果您想使用 WCF-Ninject 扩展,它假定您将 WCF 服务托管在他们自己的 AppDomain 中。
我已经在使用 Ninject.Web 扩展和 asp.net 兼容模式来获取 Membership Provider 和 Session。
有没有办法将我的 Ninject 与我的 WCF 服务一起使用,这些服务与我的 Web 应用程序托管在同一个 AppDomain中?