问题标签 [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.
c# - 如何使用不同的注入重新实例化 MVC3 控制器
这是我向 SO 提出的第一个问题,所以我会尽量不让自己丢脸。
我现在正在做的是将两个依赖对象注入到 MVC3 控制器的构造函数中。
但是为了应用程序逻辑,我需要在(运行时)未来的某个时候用新的对象更改这些对象。显然,最明显的情况是让 MVC 创建一个注入新对象的新控制器。很好,但是我如何让 MVC 产生新的控制器?
这是控制器(如果它是相关的,或者只是用于视觉识别):
PS我考虑了一些其他的解决方案,但我想让一些人肯定地告诉我这是不可能的。
那么可以吗?
我很高兴听到对我的问题的评论。Tnx,祝你好运。
.net - 使用 .NET 4 System.ServiceProcess.ServiceBase 将 Ninject v2 升级到 v3
我正在尝试使用 Ninject v3 测试托管在 .NET4 Windows 服务 ( System.ServiceProcess.ServiceBase
) 中的 Web 服务。
我创建MyServerModule : NinjectModule
,并在其中Load()
根据app.config
设置有条件地将我的接口绑定到运行时对象。
在ServiceBase.OnStart()
中,初始化步骤是:首先,StandardKernel
基于实例创建一个新的MyServerModule
,并将其与 Ninject 容器相关联。接下来,NinjectServiceHost
基于我的服务类创建一个实例,并打开服务主机开始监听。
在 Ninject v2 中,代码为:
但是,在 Ninject v3 中,KernelContainer
不再存在。此外,NinjectServiceHost()
现在接受子类化的服务器工厂IServiceBehavior
。
如何在 Ninject v3 中执行类似的初始化步骤?
ninject - Ninject MVC3 - 如何解析类型
场景:我使用以下链接设置了 Ninject MVC3: https ://github.com/ninject/ninject.web.mvc/wiki/Setting-up-an-MVC3-application
我遵循 Nuget 版本。而且,代码如下所示:
有人可以帮助我了解以下代码何时何地被执行吗?
基本上我试图了解我们在哪里解决具体类型。
更新:
我的问题更多的是 MVC 在哪里使用 Kernel.Get() 将给定的接口解析为具体类型。
这是由 Ninject.MVC 完成的吗?
dependency-injection - 通过 Ninject 在 MVC 4 中进行依赖注入有什么要求?
我尝试将依赖项注入到控制器的构造函数中,就像我之前所做的那样。问题是我似乎无法让它工作。使用 MVC 4 进行 DI 时是否有任何新要求,或者我是否缺少一些基本要求?
我正在使用:
Ninject.MVC3 3.0.0.6
System.Web.MVC 4.0.0.0
以下是与此相关的重要部分:
NinjectWebCommon.cs
全球.asax:
控制器:
我得到:
[MissingMethodException: 没有为此对象定义无参数构造函数。] System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) +0 System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache) +98 System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache) +241 System.Activator.CreateInstance(Type type, Boolean nonPublic) +69 System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext,类型控制器类型)+67
[InvalidOperationException:尝试创建类型为“Web.Controllers.EventController”的控制器时发生错误。确保控制器有一个无参数的公共构造函数。] System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType) +182 System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType) +80
在我看来,Ninject 没有得到 ControllerFactory 的责任。
c# - 是否在 InSingletonScope 中使用 Ninject 绑定 ObjectContext
我有带有构造函数的存储库,看起来像
我在我的 MVC 应用程序中使用 Ninject 来绑定 ObjectContext 像这样
我不确定InSingletonScope
在这种情况下。我应该使用它还是不使用它?
asp.net-mvc-3 - 得到“找不到资源”。使用 Ninject 时出错
我正在开发一个 ASP.NET MVC 3.0 应用程序,使用 Ninject 作为我的依赖注入框架。
所以我从 NinjectHttpApplication 继承了我的控制器,如下所示:
但是每当我运行应用程序并尝试浏览到我的任何控制器时,我都会收到错误消息:
无法找到该资源。
说明:HTTP 404。您要查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请查看以下 URL 并确保其拼写正确。
请求的 URL:/Home/Index
这是什么原因造成的,我该如何解决?
asp.net-mvc - 使用 Ninject 向 MVC 控制器提供用户特定的依赖项
我有一些控制器需要 Web 服务连接(MS Dynamics CRM 的一个实例CrmService
),我希望控制器通过它们的构造函数接收它。必须使用基于当前登录用户身份的令牌设置 CRM 服务(当用户登录应用程序对 CRM 进行身份验证并可以将返回的令牌存储在 Session 中时)。
我不确定如何最好地使用依赖注入和 Ninject 来提供这个实例。ToMethod()
Ninject Func<> 访问 FormsAuth/Session 以获取当前请求(如果经过身份验证则获取令牌)以创建适当的实例似乎有点垃圾。我也不确定如果用户未通过身份验证会发生什么 - 我不需要这些用户能够访问控制器,但控制器将在[Authorize]
运行任何过滤器之前实例化,因此必须始终满足依赖关系. 从我读过的内容来看,返回 null 并不理想,无论如何我都必须更改 Ninject 配置才能做到这一点。
我在想也许控制器可以获得一个实例ICrmServiceFactory
或其他东西,但如果控制器最终具有其他也直接依赖的依赖项CrmService
(并且不想被传递给工厂),这对我没有帮助。
任何有关如何解决此问题的建议将不胜感激。
asp.net-mvc - MVC DisplayNameAttribute 和 Ninject:可能吗?
让我们假设以下基本项目设置:
UI 代表 MVC Web 界面,核心实现了所有领域的业务对象,包括像CustomDisplayNameAttribute
. 该属性包含额外的依赖项,如语言解析器,例如处理后备订单。休眠会话将是另一个可能的依赖项。
在早期的项目中,这些属性会进行全局请求以获取解析器。这是 IMO 丑陋的,应该以不同的方式处理。此外,Core 应该没有HttpContext
: 因为每个请求都需要语言解析器,它可能最终出现在HttpContext
Items Collection 中。
现在我是Ninject的初学者,我不确定它是否是正确的工具,以便将此类依赖项转化为类似CustomDisplayNameAttribute
?
换句话说,它会是这样的:
HttpContext
如果创建了属性,则使用Items Collection中的语言解析器填充其他语言解析器属性- 如果没有
HttpContext
(例如测试、石英作业等),请从其他地方获取。
感谢任何输入
编辑:示例代码
编辑2:在这种情况下,似乎没有办法绕过全局访问,比如注册表模式或类似的。UI 将在那里注册所需的数据,并且属性将从那里访问它。我们开始考虑将它存储在 中ThreadLocal<T>
,但这似乎并没有真正保存,因为在生命周期中存在线程交换的可能性。所以似乎没有办法HttpContext
在注册表层中存储。有关此主题的更多信息,请参阅 [Cup(Of T)][1]。
asp.net-mvc-3 - 使用构造函数继承基本控制器
我正在使用 ninject 注入我的存储库。我想继承一个我的基类,但我不能,因为它有一个构造函数。
基本控制器:
具有继承的控制器: 错误“BaseController”不包含采用 0 个参数 HomeController.cs 的构造函数
azure - 如何在 RegisterServices 方法中读取 Azure 网站应用程序设置
我正在尝试使用Windows Azure 预览门户上的
应用程序设置部分为我的 Azure Web 应用程序配置一些键/值对。
根据文档,Azure 应该在运行时将配置的键/值对注入到 .Net 配置 AppSettings 中。
有谁知道,如何RegisterServices
在类的方法中读取这些值NinjectWebCommon
?我尝试了一种常见的方式
但它返回空值或空值。稍后在我的 Web 应用程序中读取应用程序设置工作正常。