问题标签 [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 投票
2 回答
266 浏览

c# - 我应该将我的上下文注入我的存储库类吗?

我有许多如下所示的存储库类:

该类MyEntities是我使用实体框架在我的 .edmx 文件中生成的实体。我经常在我的所有存储库类中使用这个对象,并且我所有的存储库类都被注入到我的控制器中。有没有办法/将对象注入到我的存储库类中是一种好习惯,myEnt并且它是否也会以与并发相同的方式工作?

0 投票
1 回答
1314 浏览

c# - 依赖类的构造函数注入

我在我的 MVC 应用程序中使用 Ninject 并尝试实现工作单元存储库模式。

具体来说,我已经定义了一个通用的 IUnitOfWork 接口,然后我想在其他一些(业务逻辑类)的构造函数中使用这个接口的一个实例。这是我的控制器的开始......

Controller 构造函数可以正常工作,但我想找到一种构建各种业务逻辑类的简洁方法,以便它们可以引用 UnitOfWork 对象中的存储库。

问题是我无法从接口实例化一个新的业务逻辑对象,即以下代码失败:

因为没有任何东西可以将 ICompanyService 接口“连接”到具体的实现。我想做的是使用 DI (Ninject) 创建 ICompanyService 的实例,其中物理类的构造函数如下所示:

最终解决方案 根据 Joshscorp 和 Dbaseman 的建议(谢谢),我的代码结构如下:

Ninject 模块如下:

IUnitOfWork 绑定上的“InRequestScope()”方法确保在依赖类 CompanyService 和 EmployeeService 的构造函数中使用 UnitOfWork 类的相同实例。

这正是我所寻找的——依赖服务类引用的 IUnitOfWork 对象的单个实例。

0 投票
1 回答
2458 浏览

asp.net - 在 MVC3/Ninject 3 环境中使用 ASMX Web 服务的 Ninject

我正在寻找将经典 asmx Web 服务整合到我的 MVC3 环境中的最佳方式。我希望在两者之间共享内核/容器。

在过去使用 ASP.NET Web 表单时,我能够使用以下内容:

这使用较旧的 Ninject.Web 来共享内核,使用在 WebServiceBase、PageBase 等之间共享的 KernelContainer 等。

现在我有一个使用 Ninject.Web.MVC 的 MVC3 应用程序,我需要一个较旧的 Web 服务在相同的空间中运行,使用相同的内核/绑定。我无法找到有关启动和运行这样的设置的任何信息。

有没有人有任何想法、示例或帖子可以指向我(除了不使用 asmx Web 服务)?

0 投票
3 回答
2114 浏览

asp.net-mvc - 没有为这个对象定义无参数构造函数......有一个扭曲?

我正在使用 EF5 和 ninject 构建一个 MVC4 应用程序。当我从 MVC3 升级到 4 时出现问题。所以我创建了一个全新的解决方案,获取了我所有的 nuget 包,添加了所有引用,然后复制到我的代码中。

项目建设,太棒了。

我的问题是(Ninjection)sp?似乎没有正确接线。当我尝试加载页面时,我得到“没有为此对象定义无参数构造函数”作为运行时错误。但是,如果我简单地添加一个空的公共无参数构造函数,页面就会呈现,并且一切正常。

我的 App_Start 代码运行良好,NinjectWebCommon.cs(包含在问题的底部)我已经逐步完成了代码,但除了复制和粘贴之外,还遵循了在线教程。我不太了解 IoC,不知道下一步该做什么。

这是我的作文根:

![异常截图][1]

http://shareimage.ro/viewer.php?file=svs5kwamqy0pxbyntig4.gif

0 投票
2 回答
955 浏览

asp.net-mvc - Ninject 绑定可以基于 URL/路由值吗?

我有一个控制器,我想将其用于实现相同接口的两个不同实体上的 CRUD 操作。我希望 Ninject 根据 URL 中的查询字符串值(或者可能是不同的 URL,路由到同一个控制器)给它一个不同的存储库。这可能吗?我该怎么做?

0 投票
1 回答
1635 浏览

c# - 使用 Ninject 的参数化工厂

如何让 Ninject 在运行时根据变量实例化对象?

我正在尝试根据来自用户输入的参数在控制器操作 - MVC 3 中注入正确的存储库。如果用户输入“BMW”,它将绑定ICarRepositoryBMWRepository,如果他输入“KIA” KiaRepository,将被注入。

这通过 switch/case noob 实例化或参数化工厂知道,我知道如何在没有 Ninject 的情况下手动完成,检查此处解释的 4 种方法Exploring Factory Pattern

我的问题是如何用 Ninject 做到这一点?

0 投票
2 回答
1352 浏览

c# - 根据 .config 文件中的设置选择注入构造函数

我有一个使用 Ninject 作为 DI 容器的 MCV3 应用程序。

我有一个对象有 2 个构造函数(每个都有 1 个参数)

如何让 Ninject 根据运行时从 web.config 文件中读取的一些布尔值选择两个构造函数之一?

0 投票
1 回答
2095 浏览

asp.net-mvc - 如何将构造函数参数传递给asp.net mvc DI中的ninjectcontrollerfactory

我正在研究asp.net mvc 4。我正在尝试使用ninject和具有代码​​优先模型的存储库模式来实现依赖注入。

IMessage 存储库

消息库

EFMsg上下文

我的控制器

我正在使用 Ninject 进行依赖注入我将我的接口与具体类绑定,例如,

在这里,我如何将构造函数参数传递给绑定,有没有办法在 ninjectcontrollerfactory 中编写构建连接字符串的逻辑。请指导我。

0 投票
1 回答
4403 浏览

asp.net-mvc - 随机发生的 Ninject 异常:“加载 Ninject 组件 ICache 时出错”

我最近将 Ninject 和 Ninject.Web.Mvc 添加到现有的 ASP.NET MVC 4 Web 应用程序中。浏览该网站时,我收到以下异常,似乎是随机的:

[InvalidOperationException:加载 Ninject 组件 ICache 时出错 内核的组件容器中没有注册此类组件。

建议: 1) 如果您已经为 KernelBase 创建了自定义子类,请确保您已正确实现 AddComponents() 方法。2) 确保您没有通过调用 RemoveAll() 从容器中删除组件。3) 确保您没有意外创建多个内核。] Ninject.Components.ComponentContainer.Get(Type component) in c:\Projects\Ninject\ninject\src\Ninject\Components\ComponentContainer.cs:160 Ninject.Components.ComponentContainer.Get() in c:\Projects\Ninject\ ninject\src\Ninject\Components\ComponentContainer.cs:116 Ninject.Web.Common.<>c__DisplayClass2.b__1(IKernel kernel) in c:\Projects\Ninject\Ninject.Web.Common\src\Ninject.Web.Common\ OnePerRequestHttpModule.cs:74 Ninject.GlobalKernelRegistration.MapKernels(Action`1 action) in c:

一旦我收到上述异常,只需刷新或单击返回似乎会导致站点再次开始正常运行。该网站的任何一个区域似乎都不会导致它发生。

该问题与此处提出的问题非常相似:Ninject + "Error loading Ninject component ICache"。但是,该问题中的问题似乎是由扩展本身的错误引起的,已经存在一年多,并且看起来已经解决。

发生这种情况时无需对NinjectWebCommon.cs文件进行任何修改。(没有加载模块,没有添加绑定。)我让它停止的唯一方法是从项目中完全排除NinjectWebCommon.cs 。

我不确定要包括哪些其他信息,因为除了安装 Nuget 软件包之外我几乎没有做任何事情。或许值得注意的是,该项目确实包含对使用 Ninject for DI 的其他程序集的引用。

我环顾四周,不知道为什么会发生这种情况。任何建议将不胜感激。

0 投票
1 回答
431 浏览

mono - MONO 3.0.2 + Ninject + MVC4:序列不包含匹配元素

我正在使用 VS2012 RC 并在 .NET 4.0 模式下创建了一个 MVC4 应用程序。我使用 Ninject + Ninject.MVC3 作为 DI 容器。它适用于我在 Windows 上的开发机器和另一台安装了 .NET 4.0 的机器,但是当我将它部署在具有 Mono 3.0.2、XSP 和 fastcgi + lighttpd 的 Linux 服务器上时,我只收到一条与 Ninject 相关的错误消息:

澄清一下:我必须手动调用生成的 NinjectWebCommon 类的 Start 和 Stop 方法,因为该[assembly: WebActivator.PreApplicationStartMethod...]属性被忽略(我首先收到有关缺少默认构造函数的错误消息,这对于 DI ed 控制器是正常的)

我也尝试子类化 NinjectHttpApplication,但我得到了同样的错误。

这里有什么帮助吗?