问题标签 [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# - System.Web.Mvc.AuthorizeAttribute 不适用于 NinjectDependencyResolver
我创建了一个 ASP.Net MVC Web 应用程序并使用 NuGet 安装了 Ninject 2.2.1.4 版和 Ninject.MVC3 2.2.2.0 版。此应用程序使用表单身份验证。我在授权工作时遇到问题...
这是我在 Global.asax 中的 Application_Start 方法:
我在控制器中的一项操作:
我的 web.config 的身份验证部分:
问题是未经授权的用户直接进入 About 视图,而不是被重定向到 LogOn。我知道问题出在 NinjectDependencyResolver 上,因为当我从 Application_Start 中删除“DependencyResolver.SetResolver ...”行时,未经授权的用户被重定向。
我会很感激你的帮助。
问候,菲尔
c# - NinjectMVC3 的 WebActivator.PreApplicationStartMethod 程序集属性在我的视图源编辑器中导致警告
WebActivator.PreApplicationStartMethod
在我的 Web 应用程序中使用 NinjectMVC3 的属性时,
我在每个视图源编辑器文件中都看到以下警告:
xxx.cshtml:ASP.NET 运行时错误:在类型 WebActivator.ActivationManager 上运行的预应用程序启动初始化方法引发异常,并带有以下错误消息:调用目标已引发异常.. xxx.cshtml 1 1
@using
它在我的每个视图文件(例如,或@model
声明)的第一行显示为蓝色波浪线。请注意,应用程序运行得很好,问题只是在编辑我的视图源文件时(Visual Studio 实时错误/警告分析)。
WebActivator.PreApplicationStartMethod
我可以通过将其注释掉来验证这是原因。
我怎样才能解决这个问题?
parallel-processing - Ninject 绑定设置
我有一个奇怪的案例,我正在使用 NInject,但我不确定如何继续。在这个实例中,我们的存储库是自定义编写的 sql 生成器,而不是使用 linq to sql;n休眠等。
为了利用系统中的代码,我们在存储库的实现中注入所需的存储库来构建子对象(例如,“订单”对象需要获取其“订单详细信息”对象并将其分配给订单在将其返回到系统中的调用区域之前,因此在我们的 OrderRepository 中,我们有一个 [Inject]IOrderDetailRepository OrderDetailRepo { get; set; })。
直到此时,我们已经能够保持一切配置的 InRequestScope()。现在我们使用 Parallel ForEach 循环,在迭代完成后,我们将事件触发到单例范围的事件处理程序以更新数据库。我们会在循环内进行更新,但一直试图避免将循环与系统中的特定区域绑定,因为可能有很多区域可以使用这个循环。
因此,我们需要弄清楚当我们调用这个单例范围的事件处理程序时,如何配置 ninject 以使该单例事件处理程序中使用的所有 IRepositories(IOrderRepository 和 IOrderDetailRepository)都消失并在使用时立即初始化。
任何提示?
所以,我有“A”的解决方案,但我对这个解决方案不满意......我所做的是建立一个 ChildKernel,然后按照我想要的方式设置绑定。尽管这按预期工作,但感觉就像一些严重的“代码异味”。如果存在的话,希望看到一种更好的方法来处理这种情况。
dependency-injection - 如何使用 Ninject MVC3 将 IDBContextFactory 正确注入控制器的注入 IDomainFactory?
预赛
- 我正在使用 Ninject.MVC3 2.2.2.0 Nuget 包将 IDomain 接口的实现注入到我的控制器中,该接口使用工厂方法分离我的业务逻辑 (BL)。
我正在使用以下方法在预配置的NinjectMVC3.cs中注册我的 Ninject 模块:
/li>我试图避免恶魔般的服务定位器反模式的致命诅咒。
域类使用我试图通过 IDBContext 注入接口实现的 DBContext,具有以下场景:
IDomainBLFactory:
域BLFactory:
在控制器的命名空间中:
此时我可以使用 Ninject Constructor Injection 将 IDomainBLFactory 实现注入到我的控制器中,没有任何问题:
现在我的中心问题。
在 DomainBL 实现中,我将依赖注入到特定的 DBContext,在本例中,来自 Entity Framework 的 ADO DBContext,再次使用 IDBContextFactory:
IDbDataContextFactory
数据库数据上下文工厂
ADO模块
现在在 DomainBL 实现中,我遇到了为 DBContext 对象工厂注入必要接口的问题:
我尝试了什么?
使用构造函数注入。但我不知道在 IDBContextFactory 中的 Factory CreateNew() 调用中注入什么。为了清楚:
在这篇有用的帖子中,我们独特的真正朋友Remo Gloor在评论中为我描述了一个可能的解决方案,引用:“创建一个具有 CreateSomething 方法的接口,该方法获取创建实例所需的一切并让它返回实例。然后在你的配置你实现了这个接口,并添加一个 IResolutionRoot 到它的构造函数,并使用这个实例来获取所需的对象。”
问题:如何使用 Ninject.MVC3 和我适度的域类方法以正确的方式实现这一点?如何解决 IResolutionRoot 而不会因在 Service Locator 反模式中中继而受到惩罚?
对 IDBContexFactory 使用属性注入。在学习和阅读所有相互矛盾的观点以及有关它的理论解释的过程中,我可以推断这不是为我的 DBContexFactory 类代码进行注入的正确方法。没关系。无论如何它都不起作用。
问题:我错过了什么?即使这种方法是错误的,属性也不会注入。
被诅咒。使用 DependencyResolver 并忍受耻辱。这行得通,我将继续采用这种方法,直到为我找到合适的解决方案。这真的很令人沮丧,因为在我过去 10 天的努力中缺乏知识,试图理解和做正确的事情。
问题:我对注入接口实现的工厂方法和使用领域驱动方法分解业务逻辑的理解是否存在很大错误?如果我错了,我应该自信地实现哪些模式堆栈?
我之前看到大量的文章和博客并没有以开放清晰的方式提出这个重要问题。
Remo Gloor在 www.planetgeek.ch/2011/12/31/ninject-extensions-factory-introduction 中介绍了 Ninject 3.0.0 RC 的 Ninject.Extensions.Factory。
问题:此扩展是否可以与 Ninject.MVC3 一起用于一般海豚?在这种情况下,这应该是我对不久的将来的希望。
提前感谢大家的指导,并记住我们感谢您的帮助。我想很多人会发现这个场景也很有用。
asp.net-mvc-3 - 使用 DI 框架 (Ninject) 有条件地处理对象
我有以下代码
我有一个 Web 和 Windows 服务客户端都使用“MyService”类。如果客户端是 Web,我想在 HTTP 请求结束时处理“工作单元”,就好像客户端是 Windows 服务一样,我想在每次数据库调用后处理工作单元。如何做到这一点?我可以在 MyService 构造函数中添加一个额外的标志来标识客户端,但是在将具体类型映射到接口时如何修改上述代码以将硬编码值传递给该参数?
asp.net-mvc-3 - RavenDB 与 ASP.NET MVC3 中的 Ninject
我想在我的 asp.net mvc3 项目中使用带有 ninject 的 RavenDB,知道如何配置它吗?
asp.net-mvc - Ninject.Web.Common 抛出 ActivationException 试图将依赖项注入 HttpApplicationInitializationHttpModule
我不知道从哪里开始解决这个问题,但是在尝试运行我的 ASP.NET MVC 应用程序时遇到了异常。
这是我得到的错误:
[ActivationException:激活 IntPtr 时出错
没有匹配的绑定可用,并且该类型不可自绑定。激活路径:
- 将依赖 IntPtr 注入到 Func{IKernel} 类型的构造函数的参数方法中
- 将依赖Func{IKernel}注入到HttpApplicationInitializationHttpModule类型的构造函数的参数lazyKernel中
- 请求 IHttpModule
建议:
- 确保您已为 IntPtr 定义绑定。
- 如果绑定是在模块中定义的,请确保该模块已加载到内核中。
- 确保您没有意外创建多个内核。
- 如果您使用构造函数参数,请确保参数名称与构造函数参数名称匹配。
- 如果您使用自动模块加载,请确保搜索路径和过滤器正确。
堆栈跟踪如下:
这似乎不是每个人都会遇到的错误(至少,我的谷歌搜索没有发现任何有用的东西),所以我认为我在做一些奇怪的事情,但我不知道从哪里开始调试它。
我应该提到我正在使用几个 Ninject 库(Ninject、Ninject.Web.Common、Ninject.MVC3 和 Ninject.FluentValidation),它们都是 3.0.00-RC3 版本。我意识到,如果我使用预发布库,所有的赌注都将失败,但我觉得我做错了什么,因为其他人似乎没有遇到同样的错误。
关于问题可能是什么或我应该从哪里开始寻找的任何想法?
ninject - 在我的 MVC3 中使用 Ninject 时,我得到一个 Ninject.ActivationException: Error activation IRepository{Ranking} installed via Nuget
我通过 nuget 安装了 Ninject,并在 NinjectMVC3 的 RegisterServices 方法(由 nuget 创建)中注册了绑定。按照我的代码:
这是我的 HomeController:
当我执行 HomeController 时,我得到以下异常:
我做错了什么?
asp.net-mvc-3 - Ninject/MVC3 自定义模型绑定器 - 激活错误
我正在尝试将我的会话字典类的依赖注入到我的控制器的构造函数中。例如:
在我的 global.asax 文件中:
我的 SessionDictionaryBinder:
当我转到 /account/login 时,我收到错误消息:
我将 Ninject 用于 DI,并且我在 App_Start 目录中包含的文件中的其他绑定工作正常。我假设模型绑定器应该进入该文件,但语法是什么?
干杯!
asp.net-mvc-3 - 使用 Asp.Net MVC3 或 MVC4 进行 Ninject 依赖注入
我将 Ninject MVC3(版本 3.0.0.0)用于使用 NuGet 包进行依赖注入安装的 ASP.Net MVC3 应用程序。
这是 Global.asax 的变化:
但是,尽管我的 HomeController 有无参数构造函数,但它给出了以下错误:
更新:
以下是 HomeController 的代码:
CommonService 和 CommonRepository 的构造函数:
我在这里错过任何其他参考吗?