问题标签 [ninject-interception]
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.
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, Action
1 个动作)在 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
aop - Ninject 拦截 X 类的所有实例
我正在尝试 AOP 的各种框架实现,我真的很喜欢 Ninject,但是有一个标准我无法为我的生活工作。
我试图让它对所有类型为 typeof(X) 的类使用拦截器......这是我当前的代码:
我最初尝试使用 x.Request.Blah 来反对 x.Binding.Blah,但是这两种方法似乎都没有产生我所追求的结果......而且这个惊人功能的文档非常稀缺,似乎从来没有涵盖 Kernel.Intercept( ) 延期...
希望这是一个简单的答案!
ninject - Ninject 拦截具有特定属性的任何方法?
我怎样才能让 Ninject.Extensions.Interception 基本上让我将特定的拦截器绑定到任何具有属性的方法......psudocode:
像这样的课程:
ninject - 带参数的 Ninject 拦截器类
简单的问题...我想使用 Ninject 拦截器来处理我的 NFR,但是我的很多类都需要构造函数中的参数。我读到他们正在考虑允许带有参数的构造函数,但目前我收到一个错误:
我认为我使用的是 2.2.1 版本,注意到扩展站点上有一个标记为 2.3 的版本,但这能解决我的问题吗?如果没有,有什么办法吗?
c# - 如何使用 Ninject 设置可选的方法拦截?
假设我有一个类,有时我想*(但现在总是)拦截一些(但不是全部)方法。按照我的理解,这可以通过InterceptAround()
我的 Ninject 模块(在更高级别的代码中)或这些方法上的 InterceptAttribute 派生属性(在实现级别)来完成。
我不太喜欢第一种方式,因为它需要消费者知道细节,会有很多类和很多方法。但我也不喜欢第二种方式,因为我看不到如何禁用(或者更确切地说,不启用)拦截,因为属性与代码融合在一起。
是否有一些已知的方法来解决这个问题?
*:在应用程序的整个生命周期内。
.net - 使用 Ninject 注入依赖于 WCF 和 MVC 请求参数的特定 EF DbContext
我有一个MVC3 和一个 WCF REST服务,它们都托管在 Azure 中,并且使用带有 Entity Framework 4.1 的 SQL Azure 作为 ORM。
我想引入一个分片方案来增加这个设置的可扩展性。
由于 Azure 是一个无状态托管环境,因此在我的系统中,每个请求都填充了一个用户 ID,我可以使用该用户 ID 来生成我的哈希,以创建一个指向所需数据库的连接字符串(按用户分片)。
目前我正在使用带有 WCF 和 MVC 扩展的 Ninject 将 EF DbContext 注入我的存储库。上下文生命周期在请求范围内(我的休息服务使用 aspnetcompatibility)。
我的问题是:如何拦截此注入并使用正确的连接字符串填充 DbContext?例如,在 WCF 中使用自定义 ServiceHostFactory?
我查看了 Ninject.Interception 扩展,但我无法弄清楚如何设置它以在激活我的服务和控制器之前拦截 HTTP 请求。
这将允许我在不重构现有代码的情况下使用分片。
ninject - 拦截 ABase 类,而实现基类 A 和独立接口 IC 的 Child 类用于绑定
拦截一个 ABase 类,而实现基类 A 和一个独立接口 IC 的 Child 类用于绑定。
当我在 A 中有一个属性将在代理对象中设置为 null 时,问题就出现了,而在代理对象的实例中,该属性在调试视图中具有正确的值。
确切地说,我将链接添加到 包含实际代码的要点https://gist.github.com/424637484504b89789d6 。
如果有人可以帮助我,我将不胜感激。
干杯,贾尼
ninject-interception - 无法让 Ninject-Interception via Attributes 工作,我做错了什么?
我正在尝试使用 EntLib Logging 构建我们的日志框架,并使用属性来指示应该记录哪个类/方法。所以我认为拦截将是一个不错的选择。我是 Ninject 和 Interception 的超级菜鸟,我正在学习Innovatian Software关于如何通过属性使用拦截的教程。但是当我运行该应用程序时,从未调用过 BeforeInvoke 和 AfterInvoke。请帮忙,谢谢!
c# - Ninject Interception 动态代理问题
我正在尝试设置拦截以与我们一直用作依赖注入框架的 Ninject 一起工作。
我已经从 NuGet 下载了拦截扩展,并尝试使用 Castle Dynamicproxy 实现和 LinFu 实现,但都无法与我们的应用程序一起使用。
Castle 在没有无参数构造函数的类上创建代理时出错,因为所有服务对象的依赖项都通过构造函数注入,这是一个问题。错误是:
System.ArgumentException:无法实例化类的代理:emedia.RapidSystems.Subscriber.Presenters.RRSubmissionPresenter。找不到无参数构造函数。参数名称:constructorArguments
LinFu 拦截器工作得更好,直到代码调用了一个带有泛型参数的方法,然后它给了我以下内容:
System.ArgumentException:泛型类型无效。参数名称:methodInfo
这是我试图拦截的一个类的简化版本代码:
Add 和 GetAll 工作正常,但在代理上调用 GetEntity 时会发生错误。
在这一点上,我被困住了,因为这两个拦截器都不能与代码库一起工作。有没有人使用真正复杂的生产系统而不是简单的演示类进行 Ninject 拦截,如果是这样,怎么办?我不介意我使用哪个拦截器,只要它有效。
还是使用 Ninject 进行拦截还不够成熟,我是否需要考虑用 Unity 之类的其他东西替换整个东西?
ninject - Ninject 拦截器
我正在使用 caliburn.micro 框架开发 WPF 桌面应用程序,并且我想配置 ninject 拦截器以便可以拦截方法调用。我想这样做是为了在一个集中的地方处理异常,这样我的代码周围就没有很多 try-catch 块。
我无法完成这个,因为每次我用 ninject 连接所有东西时,系统都会抛出异常。
所以这里有一些代码:
AppBootstrapper 配置方法如下所示:
现在我的拦截器中的拦截方法:
视图模型中的方法如下所示:
这就是拦截器应该如何工作的方式。但它不起作用,每次我运行程序,ninject 尝试将 SomeViewModel 的实例注入 ISomeViewModel,程序执行失败,这是抛出的异常(和堆栈跟踪): http://pastebin .com/qerZAjVr
希望您能帮我解决这个问题,在此先感谢您。