问题标签 [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 回答
890 浏览

.net - 在自定义授权属性中使用 Ninject

我正在使用 Ninject 在我的自定义授权属性中注入我的依赖项:

我的模块:

我正在尝试搜索有关我的问题的一些文档,但没有找到。

我的问题是关于BindFilter方法中的第二个参数:int? order. 这是什么意思?

我看到的所有示例都有一个0with 参数(就像这个问题Dependency Injection with Ninject and Filter attribute for asp.net mvc)。但在我的情况下,属性注入仅适用于null.

0 投票
1 回答
409 浏览

asp.net-mvc - 带有 NinjectHttpApplication 和 MEF 的 Asp Mvc 3

我使用 Ninject 作为我的 MVC 控制器工厂,但我也通过 MEF 加载某些路由和控制器,这些控制器需要能够向 Ninject 注册自己:

所以动态添加的路由可以被拾取。

到目前为止,我能想到的唯一方法是将内部内核暴露在 Web 应用程序之外,但这似乎有点讨厌,而且NinjectHttpApplication.Kernel似乎已经过时了。

有没有其他人设法做到这一点?

0 投票
0 回答
264 浏览

asp.net-mvc - 来自外部程序集的 Ninject MVC 控制器

我在外部程序集中有一些控制器,例如:

然后在我的主 mvc 程序集中执行以下操作:

现在我遇到的问题是,我目前在尝试访问该路由时得到 404,即使调试的路由显示它与该路由匹配。我只是假设它默认使用内置的 MVC 控制器工厂来处理找不到的类型。有没有办法解决这个问题......因为目前我的大多数路由和控制器都是由 MEF 在运行时注入的......

0 投票
2 回答
892 浏览

asp.net-mvc-3 - 将 Ninject 与自定义 WebViewPage 类型一起使用

我在我的应用程序中使用 ASP.NET MVC 3 + Ninject,它与我的控制器配合得很好。

我还有一个从 WebViewPage 继承的自定义基页类, 并且我已经设置了一个接口,我希望将其注入到该自定义基页类中。

但是,它不起作用(我的接口为空),我认为这是因为 Ninject 不知道 System.Web.Mvc.MvcWebRazorHostFactory 我怀疑它必须以某种方式覆盖或拦截。

谁能指出我如何允许我的自定义 WebViewPage 使用 DI 的正确方向?

0 投票
1 回答
140 浏览

ninject - 拦截 ABase 类,而实现基类 A 和独立接口 IC 的 Child 类用于绑定

拦截一个 ABase 类,而实现基类 A 和一个独立接口 IC 的 Child 类用于绑定。

当我在 A 中有一个属性将在代理对象中设置为 null 时,问题就出现了,而在代理对象的实例中,该属性在调试视图中具有正确的值。

确切地说,我将链接添加到 包含实际代码的要点https://gist.github.com/424637484504b89789d6 。

如果有人可以帮助我,我将不胜感激。

干杯,贾尼

0 投票
1 回答
509 浏览

asp.net-mvc-3 - 让 SNAP AOP 框架与 Ninject MVC 3 一起工作

我想在我的 MVC3 应用程序中使用 Snap 尝试 SOA 风格的日志记录。我将 Ninject 用于 IoC,因此通过 Nuget 安装了 Ninject.MVC 和 Snap.Ninject 都查看了 GitHub 中 Snap.Ninject 的示例代码。我还阅读了Getting SNAP(AOP)、NInject 和 ASP.Net MVC 3 一起工作, 这似乎正是我想要的。

我已经相应地更新了我的 NinjctMVC3.cs,但是当我将拦截器属性添加到我的方法时,我从 Snap AspectUtility 收到一个对象引用错误。这是我的 NinjectMVC3.cs

和控制器

以及具有拦截属性的方法的工厂类

这会导致以下异常

[NullReferenceException: 对象引用未设置为对象的实例。] Snap.AspectUtility.CreateProxy(Type interfaceType, Object instanceToWrap, IInterceptor[] 拦截器) +29 Snap.AspectUtility.CreatePseudoProxy(IMasterProxy proxy, Type interfaceType, Object instanceToWrap) + 184 Snap.Ninject.AspectProxyActivationStrategy.Activate(IContext context, InstanceReference 参考) +376 Ninject.Activation.<>c__DisplayClass2.b__0(IActivationStrategy s) 在 c:\Projects\Ninject\Maintenance2.2\ninject\src\Ninject\Activation\ Pipeline.cs:58 Ninject.Infrastructure.Language.ExtensionsForIEnumerableOfT.Map(IEnumerable1 series, Action1 个动作)在 c:\Projects\Ninject\Maintenance2.2\ninject\src\Ninject\Infrastructure\Language\ExtensionsForIEnumerableOfT.cs:23 Ninject.Activation.Pipeline.Activate(IContext context, InstanceReference reference) in c:\Projects\ Ninject\Maintenance2.2\ninject\src\Ninject\Activation\Pipeline.cs:58 Ninject.Activation.Context.Resolve() 在 c:\Projects\Ninject\Maintenance2.2\ninject\src\Ninject\Activation\Context 中。 c:\Projects\Ninject\Maintenance2.2\ninject\src\Ninject\KernelBase.cs:182 Ninject.KernelBase.b__7(IContext 上下文):375 System.Linq.<>c__DisplayClass12 3.<CombineSelectors>b__11(TSource x) +32 System.Linq.WhereSelectEnumerableIterator2.MoveNext() +151 System .Linq.Enumerable.SingleOrDefault(IEnumerable 1 source) +4178557 Ninject.Planning.Targets.Target1.GetValue(Type service, IContext parent) in c:\Projects\Ninject\Maintenance2.2\ninject\src\Ninject\Planning\Targets\Target.cs:179 Ninject.Planning.Targets 。目标1.ResolveWithin(IContext parent) in c:\Projects\Ninject\Maintenance2.2\ninject\src\Ninject\Planning\Targets\Target.cs:147 Ninject.Activation.Providers.StandardProvider.GetValue(IContext context, ITarget target) in c:\Projects\Ninject\Maintenance2.2\ninject\src\Ninject\Activation\Providers\StandardProvider.cs:97 Ninject.Activation.Providers.<>c__DisplayClass2.<Create>b__1(ITarget target) in c:\Projects\Ninject\Maintenance2.2\ninject\src\Ninject\Activation\Providers\StandardProvider.cs:81 System.Linq.WhereSelectArrayIterator2.MoveNext() +85 System.Linq.Buffer 1..ctor(IEnumerable1 源) +325 System.Linq.Enumerable.ToArray(IEnumerable 1 source) +78 Ninject.Activation.Providers.StandardProvider.Create(IContext context) in c:\Projects\Ninject\Maintenance2.2\ninject\src\Ninject\Activation\Providers\StandardProvider.cs:81 Ninject.Activation.Context.Resolve() in c:\Projects\Ninject\Maintenance2.2\ninject\src\Ninject\Activation\Context.cs:157 Ninject.KernelBase.<Resolve>b__7(IContext context) in c:\Projects\Ninject\Maintenance2.2\ninject\src\Ninject\KernelBase.cs:375 System.Linq.<>c__DisplayClass123.b__11(TSource x) +32 System.Linq.WhereSelectEnumerableIterator 2.MoveNext() +151 System.Linq.Enumerable.SingleOrDefault(IEnumerable1 源) +4178557 Ninject.Web.Mvc .NinjectDependencyResolver.GetService(Type serviceType) 在 c:\Projects\Ninject\Maintenance2.2\ninject.web.mvc\mvc3\src\Ninject.Web.Mvc\NinjectDependencyResolver.cs:56 System.Web.Mvc.DefaultControllerActivator.Create (RequestContext requestContext,类型控制器类型)+51

提前致谢。我想要一个失败的工作演示然后让我知道。

0 投票
2 回答
612 浏览

asp.net-mvc - MVC 3 ninject 绑定惰性评估参数

我想用一个惰性求值的参数绑定我的控制器。

我有下一个绑定:

问题出在 lambda 函数上。我想返回 Server.MapPath("/") ...但我在 c 对象中没有请求上下文。我怎样才能发送它?

0 投票
2 回答
1261 浏览

asp.net-mvc-3 - MVC 3 使用 Ninject 注入控制器

我似乎找不到直接从单独的项目中注入控制器的示例。以前在 Spring.net 中,我会将以下内容添加到 Global.asax

然后只需将条目添加到 xml <object name="Shared" type="..."/>

有人可以概述一下使用最新版本的 Ninject 和 MVC3 完成此操作所需的步骤吗?或一个例子的链接?

另外,我想对 Views 做一些类似的事情(将它们放在一个单独的项目中),Ninject 可以帮助我吗?

任何帮助表示赞赏。

0 投票
2 回答
2270 浏览

c# - Ninject MVC3 中 Action 方法参数的依赖注入

我想使用 NInject.MVC3 来解析在控制器上调用 Action 方法时要实例化哪个具体类。例如:

显然,如果没有依赖注入,MVC3 无法实例化 IMyModelInterface,但我可以将该接口绑定到实现该接口的具体类。

我已经尝试过了,只是从试图实例化接口的 MVC 框架中得到错误。

那么,首先,这是一件坏事吗?

如果这不是一件愚蠢的事情,我该怎么做?

如果这是一件坏事,我该怎么做。我考虑过使用 ViewModel 然后复制参数?我有点不愿意这样做,因为我的模型包含视图要使用的所有很好的验证属性 - 并且必须在 ViewModel 中复制它,这似乎增加了维护开销。

我已经看到了使用 Autofac执行此操作的 SO 问题。

我正在使用 Nuget 包中最新版本的 NInject 和 NInject.MVC3。

0 投票
1 回答
743 浏览

ninject.web.mvc - NinjectMVC3 和 ModelValidatorProviders

我有一个 MVC3 项目,我使用 NinjectMVC3 进行依赖注入 - 到目前为止一切都很好。最近,我想本地化应用程序中的所有文本,从我看到的所有选项中,这里提供的选项似乎是最干净的。如果不与默认的 NinjectMVC3 设置同时使用,则此解决方案非常适合。

但是,当将 NinjectMVC3 添加到项目中时,会为任何用 [Required] 属性修饰的属性显示以下错误(和 YSOD):不显眼的客户端验证规则中的验证类型名称必须是唯一的。多次看到以下验证类型:必需

根据错误,看起来有 2 个或更多验证器提供程序注册到 ModelValidatorProvidersCollection。

注意:在 web.config 中,存在以下设置用于客户端不显眼的验证,我想以这种方式保留它们:

有谁知道如何克服这个问题?