问题标签 [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.

0 投票
1 回答
3102 浏览

nhibernate - Application_BeginRequest() 对象引用未设置为对象的实例

尝试创建连接时,我的 MVC 应用程序出现错误。我将 NHibenate 与 Ninject 一起使用。

Global.asax.cs文件:

Web.config文件:

这是错误消息:

0 投票
1 回答
4697 浏览

c# - Ninject InThreadScope 绑定

我有一个 Windows 服务,其中包含一个文件观察程序,当文件到达时会引发事件。当一个事件被引发时,我将使用 Ninject 创建业务层对象,这些对象在它们内部具有对实体框架上下文的引用,该上下文也通过 Ninject 注入。在我的 Web 应用程序中,我总是使用 InRequestScope 作为上下文,这样在一个请求中,所有业务层对象都使用相同的实体框架上下文。在我当前的 Windows 服务场景中,将实体框架上下文绑定切换到 InThreadScope 绑定就足够了吗?

理论上,当服务中的事件处理程序触发它在某个线程下执行时,如果另一个文件同时到达,它将在另一个线程下执行。因此,这两个事件都不会共享实体框架上下文,本质上就像网络上的两个不同的 http 请求一样。

困扰我的一件事是这些线程范围对象的破坏,当您查看 Ninject wiki 时:

.InThreadScope()- 每个线程将创建一个该类型的实例。
.InRequestScope()- 每个网络请求都会创建一个该类型的实例,并在请求结束时销毁。

基于此,我了解 InRequestScope 对象将在请求结束时(或之后的某个时间点)被销毁(垃圾收集?)。然而,这并没有说明 InThreadScope 对象是如何被销毁的。回到我的示例,当文件观察程序事件处理程序方法完成时,线程消失(回到线程池?)注入的 InThreadScope-d 对象会发生什么?

编辑: 现在有一点很清楚,当使用 InThreadScope() 时,当文件观察程序的处理程序退出时,它不会破坏您的对象。我能够通过在文件夹中删除许多文件来重现这一点,最终我得到了相同的线程 id,这导致了与以前完全相同的实体框架上下文,所以这对于我的应用程序来说绝对是不够的。在这种情况下,5 分钟后进入的文件可能正在使用之前分配给同一线程的陈旧上下文。

0 投票
1 回答
440 浏览

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, Func2 keySelector,Func 2 elementSelector, IEqualityComparer1 比较器)在 System.Linq.GroupedEnumerable 3.GetEnumerator() at Ninject.Modules.ModuleLoader.LoadModules(IEnumerable1 模式)在 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()

0 投票
1 回答
283 浏览

ninject - 将此 ninject 1.0 代码转换为 ninject 2.0

我正在尝试遵循本教程http://damianm.com/tech/nhibernate-mvc-and-ninject/

但我遇到了一些问题,我相信它们与发布 2.0 时所做的更改有关

我从未使用过 ninject 1.0,而且我使用 ninject 2.0 的时间不到一周,所以我发现很难转换。

我认为这

需要改为

这些我找不到它们会是什么

以上是我迄今为止确定的需要转换的内容。

我也在他的一个存储库类中看到了这一点

我不知道那究竟是为了什么。

0 投票
1 回答
423 浏览

asp.net-mvc-3 - 访问在基类的构造函数中使用属性注入定义的基类属性

我已经阅读了 ninject wiki 上的所有内容和许多帖子,但仍然不明白如何设置注入以便我可以引用此属性。我希望能够在基类构造函数中引用该属性,以便在创建任何控制器时最终设置一个通用的 ViewBag 属性。似乎实现 iInitializable 接口是正确的方法,但再次不确定如何执行此操作。另外,我选择不在基类构造函数中注入 IMyService 以简化派生类的编码。

我最近尝试的代码的简化版本:

0 投票
1 回答
393 浏览

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?

以及带有指向构建服务器的链接的答案。我点击了链接,收到了团队城市的登录请求。我没有账户。

0 投票
1 回答
1597 浏览

asp.net-mvc-3 - 使用控制器工厂和 NinjectHttpApplication 的区别?

使用 Ninject 2 MVC 3。如果我错了,请纠正我,但我看到了在 MVC 3 应用程序中使用 Ninject 的两种方式。我们可以使用一个新的控制器工厂,就像 ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory()); 或者使用 NinjectHttpApplication 然后配置内核。

我想知道使用控制器工厂和 NinjectHttpApplication 为 DI 配置绑定有什么区别?

设置 DI 的最佳位置是什么?

0 投票
1 回答
372 浏览

structuremap - Ninject 和 StructureMap 之间哪个更简单?

我想知道 Ninject 和 StructureMap 之间哪个更简单?使用它们时有什么我应该注意的吗?

谢谢。

0 投票
2 回答
1125 浏览

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 的特殊线程也不好闻。

0 投票
1 回答
662 浏览

asp.net - 在 Web 应用程序的 Appdomain 中使用 Ninject 和 WCF 服务?

据我了解,如果您想使用 WCF-Ninject 扩展,它假定您将 WCF 服务托管在他们自己的 AppDomain 中。

我已经在使用 Ninject.Web 扩展和 asp.net 兼容模式来获取 Membership Provider 和 Session。

有没有办法将我的 Ninject 与我的 WCF 服务一起使用,这些服务与我的 Web 应用程序托管在同一个 AppDomain中?