问题标签 [ninject.web.mvc]

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 回答
1134 浏览

asp.net-mvc-3 - Ninject UnitOfWork 混乱

我一直在 MVC 3 应用程序中使用 Ninject,但我正在尝试更改我的数据对象的模式以使用 UnitOfWork,但我无法弄清楚如何让 Ninject 正确处理这个问题。

我知道我的类的实现在我的控制台应用程序中像这样手动构建时起作用:

在我的 MVC 3 应用程序中,我使用的是 Ninject.MVC3 NuGet 包,它位于 RegisterServices 方法中。

虽然这在大多数情况下都有效,但不会执行所有 POST 请求(插入、更新、删除)。没有抛出异常,当我单步执行它时,它会毫无问题地通过 SaveChanges() 方法并返回堆栈,但没有执行任何操作。所以我知道我的 Ninject 配置一定遗漏了一些东西。

这是我的工作单元课。

这是 DatabaseFactory 类:

还有我的 DataObjectFactory 类:

这与 EFMVC CodePlex 应用程序中使用的模式相似,但我不使用 AutoFac。

对此的任何想法表示赞赏。

谢谢。

0 投票
1 回答
432 浏览

c#-4.0 - Ninject MVC 2 - EF 4 ObjectContext 的问题

我一直在处理这个问题一段时间,但似乎仍然无法找到解决方案。我有几个包装 EF 4 ObjectContext 的存储库。下面是一个例子:

我有以下 NinjectModule:

由于我使用的是 MVC 2 扩展,因此这些绑定默认为InRequestScope().

我的问题是 ObjectContext 没有得到正确处理。我得到了这里描述的内容:https ://stackoverflow.com/a/5275849/399584 具体来说,我得到一个 InvalidOperationException 状态:

无法定义这两个对象之间的关系,因为它们附加到不同的 ObjectContext 对象。

每次我尝试更新实体时都会发生这种情况。

如果我将我的存储库设置为绑定InSingletonScope()它可以工作,但似乎是个坏主意。

我究竟做错了什么?

编辑:为清楚起见,我只有一个 ObjectContext 我想与每个请求的所有存储库共享。

0 投票
3 回答
1743 浏览

c#-4.0 - Ninject MVC 2、EF 4、AutoMapper - ObjectContext 已被释放

完全修改:

好的,我使用带有 MVC 2 扩展的 Ninject 作为我的 DI 容器,并将 AutoMapper 作为我的实体 <--> 视图模型映射器。我的视图模型 -> 实体映射中出现“ObjectContext 已处理”错误。我的代码如下。

Ninject 绑定:

我的存储库:

我的控制器的构造函数,其中包括我的 AutoMapper 地图定义:

这是这里重要的第二个映射。

接下来是我的编辑方法:

最后,堆栈跟踪:

按照调试器中的过程,我的 ObjectContext 的 (HGEntities) 连接保持不变,直到我的视图模型 -> 游戏地图被调用。出于某种原因,连接被设置在那个点上。关于为什么会发生这种情况的任何想法?

0 投票
1 回答
510 浏览

c#-4.0 - 如何让这个旧的 Ninject 2 代码与 Ninject 3 和 MVC 2 扩展 (NinjectControllerFactory) 一起使用?

在我的 MVC 2 项目中,我最初使用 Ninject 2 并编写了这个版本的 NinjectControllerFactory:

最重要的是检索我的 ErrorController,它允许我优雅地处理大量 HTTP 错误。

问题是我通过 Nuget 升级到 MVC 2 扩展,所以已经提供了 NinjectControllerFactory。是否可以使用我自己的 GetControllerInstance 覆盖?如果是这样,怎么做?

0 投票
2 回答
1689 浏览

c# - Ninject 3.0 不处理映射为 InRequestScope 的对象

我正在尝试使用 Ninject 来管理对象的生命周期。对于我的 IRepository 对象,我需要实现 IDisposable,并且在 ConcreteRepository 中,我实现了 IDisposable 来终止我的 NHibernateSession。

我的问题是我还在 ConcreteRepository 中放置了一个静态变量来计算 ConcreteRepository 的实例化和销毁/处置的数量......当我运行应用程序时,我与数据库的连接用完了,我的日志是表明我的应用程序永远不会释放我的连接。

我的 Global.asax:

我用来测试的控制器模块:

我的“NHibernate”忍者模块:

我想弄清楚的是,为什么当我要求某些东西成为 InRequestScope() 时,它没有被处理……有什么想法吗?

0 投票
1 回答
357 浏览

ninject - 使用 Ninject 注入区域内的控制器

有没有办法制作一个绑定,上面写着“当将 IService 注入区域内的任何控制器时,管理员注入此实例”?

我们在 Admin 中有许多控制器,它们可能使用相同的服务。我们可以为每个控制器编写绑定,但随后可能会使用相同的服务引入另一个控制器,而开发人员忘记专门为 Admin 连接它(它使用与其他区域或区域外不同的服务实现集)。

我想说:在管理区域内注入任何内容时,请使用此...

0 投票
1 回答
4089 浏览

asp.net-mvc-3 - 如何使用 Ninject for MVC 3 手动实例化对象

如何在 ASP.NET MVC 3 中使用 Ninject 手动实例化对象?某事作为

谢谢和问候

0 投票
1 回答
843 浏览

ninject - Ninject.MVC3 到 NinjectWebCommon.cs 的路径无效

我在我的应用程序中使用了 Ninject.MVC3,它一直运行良好,直到我决定重命名我的解决方案/项目。一切都已正确重命名,所有测试都通过等等。不起作用的一件事是生成的NinjectWebCommon类。

这一行:

bootstrapper.Initialize(CreateKernel);

抛出此异常:

System.InvalidOperationException: Sequence contains no elements

当我查看“黄屏死机”时,我发现源文件NinjectWebCommon.cs完全错误。这是在项目重命名之前准确的路径。

我检查了 .proj 文件中的所有路径,但没有发现任何错误。我还尝试丢弃 app_start 文件夹并重新安装 nuget 包。

有什么建议么。

0 投票
1 回答
858 浏览

asp.net-mvc-3 - 在 MVC3 控制器之外调用 Ninject 时 HttpContext 为空

这个问题Ninject Dependency Injection in MVC3 - Outside of a Controller与我所经历的很接近,但并不完全如此。

我有一个使用 Ninject 3 的 ASP.NET MVC3 站点,它与构造函数注入完美配合。我的所有依赖项都已解决,包括那些在 HttpContext.Current 中传递的依赖项。

我的问题是,在 global.asax 中,我启动了一个 TaskManager 类,该类定期在计时器上执行一些任务。在 TaskManager 类中,我没有控制器,所以如果我需要访问我的依赖项之一(比如我的错误日志服务),我使用一个可以访问内核对象的静态包装类:

.Get 方法只是执行一个 kernel.Get 调用来解决我的依赖。每次我在其他依赖项上使用此方法时效果都很好。但是, ILoggingService 有一个名为 MyWebHelper 的依赖项,它通过其构造函数注入,并在其构造函数中包含 HttpContext。

在我的网站的其余部分,这一切都很好,因为所有依赖项都被注入到我的 MVC 控制器中。但是,如果我手动调用我的静态包装类来获取我的依赖项,那是行不通的。我得到错误:

使用从 HttpContext 到方法的绑定激活 HttpContext 时出错

提供者返回 null。

所以,它并没有像我的 MVC 应用程序的其余部分那样给我一个 HttpContext。我希望这是有道理的,我还不是 ninject 专家,但我正在尝试......

0 投票
0 回答
439 浏览

c# - ninject 继承安全规则违反了类型:mvc4 中的“Ninject.Web.NinjectHttpModule”

我有一个 mvc4 网络应用程序。我决定使用ninject.mvc3。所以我从nuget安装它。但它抛出了这个异常:

我试图添加 '<trust level="Full"/>'web.config。我也尝试添加

'[assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)]' 在 NinjectWebComman.cs 中。但它又没有运行。

我应该怎么办?。谢谢。