问题标签 [ninject-extensions]

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

ninject - Ninject 拦截

我可以从什么 dll 获得 Intercept 的扩展名?我从http://github.com/danielmarbach/ninject.extensions.interception添加了 Ninject.Extensions.Interception 没有运气。有一些样品工作吗?

我需要的是制作一个拦截器,该拦截器将从 WcfClient 到 WcfServer 一个具有不同参数的不同函数,这样我就不必在 WcfServer 代码后面实现已经实现的函数。所以我已经实现的功能的签名是 -

它所做的是通过 BlClass 激活 Method 并将 ParamList 发送给它。我想做一个拦截器,它会在处理 WcfServer 端时动态填充参数。但首先我如何才能访问我的 ninjectModule 中的拦截扩展?
提前感谢您提供的任何帮助:)

ps试过了:

和:

0 投票
0 回答
209 浏览

ninject - Ninject:方法未在 Silverlight 中被拦截

我在 Silverlight 应用程序中使用 Ninject 进行 DI。现在我正在尝试实施拦截并遇到问题。我的方法没有被拦截。下面是示例实现

在 App.xaml --> Application_Startup 事件中,我执行了我希望被拦截的绑定和调用方法:

ViewModel 的实现:

LockUI 属性:

LockUIInterceptor 实现:

GlobalEventManager 实现:

我添加了对 Castle.Core、Castle.DynamicProxy2、Ninject、Ninject.Extensions.Interception、Ninject.Extensions.Interception.DynamicProxy2 的引用

有人可以帮忙吗。谢谢

0 投票
1 回答
225 浏览

ninject - ninject mvc 和 wcf

Ninject 对 mvc 和 wcf 有扩展,但在我们的例子中,mvc 应用程序也托管 wcf。你如何使用两者,看起来两个扩展都为httpapplication(global.aspx)提供了基类,

正确的使用方法是什么?

此刻看起来我需要从 wcf 扩展中抓取碎片并将其放入 mvc 扩展中以使两者都能正常工作。

0 投票
1 回答
742 浏览

dependency-injection - Ninject.Web.Mvc 附加组件不适用于 ASP.NET MVC 2

我正在使用Ninject.Web.Mvc(MVC 2 版本)附加组件和 ASP.NET MVC 2。这是我的摘录Global.asax.cs

我也有一个基础RepositoryController

如您所见,这是一个非常简单的设置,RepositoryController需要注入 的实例IRepository,而 Ninject 被配置为使用NHibernateRepository. 但是,这不起作用,并且Repository每当我尝试在控制器中访问它时该属性为空。但是,如果我将代码更改为此:

然后它工作正常。有谁知道为什么构造函数注入不起作用,但属性注入是?

0 投票
1 回答
2409 浏览

c# - 使用 Ninject 的 WCF 服务问题(从 Windsor 移动)(InvalidOperationException)

家里有 Ninject 专家吗?:) 我最近一直在尝试将我的 WCF 服务应用程序和 Windows 窗体客户端应用程序从 Castle Windsor 依赖注入转换为 Ninject。

在 Win Forms 方面一切都很好,但我在 WCF 方面遇到了问题。到目前为止,我已经了解到,我相信我需要可用于 Ninject 的 WCF 扩展,以便将 DI 与 WCF 一起使用,我已经完成并引用了但仍然遇到我认为在尝试解决我的服务时遇到的问题:

System.InvalidOperationException:找不到类型“WcfMemberService”,作为 ServiceHost 指令中的服务属性值提供,或在配置元素 system.serviceModel/serviceHostingEnvironment/serviceActivations 中提供。

我拥有的代码是我认为可以正确访问的代码,例如我的 WcfMemberService 如下:

服务模块.cs:

我所做的假设是,从我的工作 Castle Windsor 配置转换过来时,它Named()应该与 WCF.svc文件声明中的条目相同。所以我这样做如下:

非常简单,顺便说一下,我从 Ninject Wcf Extensions GitHub 页面上的 TimeService 示例解决方案中采用了这种方法。

谁能看到我在这里做错了什么以及为什么“WcfMemberService”无法解决?它在内核中必然是“WcfMemberService”,并在@ServiceHost 声明中被引用。我看不出还有什么问题。这与我在 Castle Windsor 中声明它的方式完全相同,只是语法大致不同,但两者Named()都在文件的服务部分中使用和引用该名称.svc

*更新*我发现如果我不使用该Named()方法,只需在@ ServiceHost声明中设置我的服务即可Business.Common.Wcf.Services.MemberService, Business.Common.Wcf.Services。但我仍然对为什么我不能使用命名服务感到困惑。谢谢。

顺便说一句,我的 Ninject 模块是通过Global.asax.cs以下方式加载的:

0 投票
1 回答
781 浏览

wcf - 带有 WCF 的 Ninject 拦截扩展给了我一个“未设置对象实例的对象引用”。错误

我开始使用 Ninject 拦截扩展,但无法让它在我的 WCF 服务中工作。使用 WCF 扩展,ninject 可以正常工作,正是拦截给我带来了麻烦。也许我做错了?当我尝试在内核构造函数中添加 LinFuModel 时,它告诉我它已经加载,所以我想这很好。

基本上所有对绑定的拦截都会破坏我的 wcf 服务,但我的方法拦截仅适用于服务(getData() 在服务合同中)。

编辑:以下也不起作用

结束编辑

提前感谢,Rinze

0 投票
1 回答
913 浏览

aop - Ninject拦截扩展中的拦截接口方法

我正在玩 Ninject Interception 扩展。Ian Davis 关于它的博客文章表明,拦截总是基于实际的服务类型,而不是接口。例如,以下代码将不起作用,因为IFoo它是一个接口:

当然,下一个代码片段只有在以下情况下才Foo.DoSomething有效virtual

对于面向方面的编程,这似乎是一个非常明显的漏洞。我对接口编程非常认真,以便我们可以使用模拟框架来模拟我们的各种服务,但我的绝大多数实际方法实现都不是虚拟的。如果一个模拟框架可以IFoo用一种方法来实现我所要求的,那么 Ninject 似乎应该能够做到。

所以我想我的问题有两个:

  1. Ninject Interception 是否有任何理由不允许您绑定到接口方法?
  2. 有没有一种简单的方法可以让 Ninject 绑定到动态“包装器”类,让我对所有接口方法执行某些拦截操作,然后将调用传递给真正的实现?
0 投票
1 回答
3022 浏览

asp.net-mvc-3 - Ninject 和 OnePerRequestModule

我最近尝试了Ninject扩展Ninject.Web.Mvc,我注意到一些奇怪的东西,虽然没有破坏,但令人困惑。

NinjectHttpApplication抽象类中,有一个构造函数定义如下..

我在这里放置了一个调试器断点,这被调用了几次。我找不到任何关于它的真实文档。在实现代码中,有这一行引起了我的注意。

我的问题如下...

  • 什么是OnePerRequestModule
  • 为什么这个构造函数被多次调用?
  • StartManaging如果构造函数被多次调用,这个方法的目的是什么?
0 投票
1 回答
882 浏览

asp.net-mvc-3 - 添加对 Ninject.Extensions.Interception.DynamicProxy 的引用会导致不明确的匹配异常

我已将 Ninject 配置为在 ASP.NET MVC 3 应用程序中执行 DI。这工作正常,它将正确的类注入到我的控制器中。

当我尝试添加 Ninject.Extensions.Interception 以使用我的应用程序时,我开始收到一个模棱两可的匹配异常。这只发生在我添加 Ninject.Extensions.Interception.DynamicProxy 程序集时。如果我删除这个程序集,那么它会再次运行良好。我还参考了 Ninject.Extensions.Intereception 和 Castle.Core。

请注意,我没有在应用程序中配置拦截。我只是添加一个参考,这个错误开始发生。

我正在使用 Ninject 2.2.1.0 和 Ninject.Extensions.Interception 2.2.0.0。

堆栈跟踪:

[AmbiguousMatchException:找到不明确的匹配项。]
System.RuntimeType.GetPropertyImpl(字符串名称,BindingFlags bindingAttr,Binder binder,Type returnType,Type[] 类型,ParameterModifier[] 修饰符)+9402677 System.Type.GetProperty(String name,BindingFlags bindingAttr) +31
C:\Projects\Ninject\ninject.extensions.interception\src\Ninject.Extensions.Interception\Infrastructure\Language\ExtensionsForMethodInfo.cs 中的 Ninject.Extensions.Interception.Infrastructure.Language.ExtensionsForMethodInfo.GetPropertyFromMethod(MethodInfo 方法,类型 implementationType): 35 Ninject.Extensions.Interception.Planning.Strategies.InterceptorRegistrationStrategy.Execute(IPlan 计划) 在 c:\Projects\Ninject\ninject.extensions.interception\src\Ninject.Extensions.Interception\Planning\Strategies\InterceptorRegistrationStrategy.cs:83 Ninject .Planning.<> c_DisplayClass3.b _1(IPlanningStrategy s) in c:\Projects\Ninject\ninject\src\Ninject\Planning\Planner.cs:68 Ninject.Infrastructure.Language.ExtensionsForIEnumerableOfT.Map(IEnumerable1 series, Action1 个动作)在 c:\Projects\Ninject\ninject\src\Ninject\Infrastructure\Language\ExtensionsForIEnumerableOfT.cs:23 Ninject.Planning.Planner.GetPlan(Type type) in c:\Projects\Ninject\ninject\src\Ninject \Planning\Planner.cs:68 Ninject.Activation.Providers.StandardProvider.Create(IContext context) 在 c:\Projects\Ninject\ninject\src\Ninject\Activation\Providers\StandardProvider.cs:74 Ninject.Activation.Context。 Resolve() 在 c:\Projects\Ninject\ninject\src\Ninject\Activation\Context.cs:157 Ninject.KernelBase.b__7(IContext context) 在 c:\Projects\Ninject\ninject\src\Ninject\KernelBase.cs :375

0 投票
2 回答
1180 浏览

ioc-container - Ninject:每一个类实例被拦截一个拦截器实例?

我目前遇到一个问题,试图为每个被拦截的类实例连接一个拦截器实例。

我在 InterceptorRegistrationStrategy 中创建和建议并设置回调以从内核解析拦截器(它有一个注入构造函数)。请注意,我只能在回调中实例化拦截器,因为 InterceptorRegistrationStrategy 没有对内核本身的引用。

我得到每个方法的拦截器实例。

有没有办法为每个被拦截的类型实例创建一个拦截器实例?

我在考虑命名范围,但拦截类型和拦截器不相互引用。