Tag: ninject interception

如何使用Ninject设置可选方法拦截?

假设我有一个类,我希望有时*(但现在总是)拦截一些(但不是全部)方法。 我理解它的方式,可以使用我的Ninject模块中的InterceptAround() (在更高级别的代码中),或者使用这些方法上的InterceptAttribute派生属性(在实现级别)来完成。 我真的不喜欢这样做的第一种方式,因为它需要消费者知道细节,有很多类有很多方法。 但我也不喜欢第二种方式,因为我没有看到如何禁用(或者更确切地说,不启用)拦截,因为属性与代码融合。 有没有一些已知的方法来解决这个问题? *:在应用程序的生命周期内。

拦截Ninject。 无法加载IProxyRequestFactory

我正在学习使用Ninject和Interceptor模式。 我有以下拦截器。 public class MyInterceptor:IInterceptor { public void Intercept(IInvocation invocation) { Console.WriteLine(“Pre Execute: ” + invocation.Request.Method.Name); foreach (var param in invocation.Request.Arguments) { Console.WriteLine(“param : ” + param); } invocation.Proceed(); Console.WriteLine(“Post Execute: ” + invocation.Request.Method.Name); Console.WriteLine(“Returned: ” + invocation.ReturnValue); } } 并且有一个名为MyClass的类,它只有2个简单的方法,虚拟以允许拦截器处理它们。 (两种方法是Echo和double,这就像他们的名字所说的那样。) 我通过NuGet将Ninject,Ninject.Extensions.Interception和Ninject.Extensions.Interception.DynamicProxy添加到我的项目中。 添加了以下using语句。 using Ninject; using Ninject.Extensions.Interception.Infrastructure.Language; using Ninject.Extensions.Interception; 我的Main方法,它执行引导看起来像这样。 static void Main(string[] args) […]

Ninject。 对内部集合属性的奇怪拦截

域对象: TargetObject.cs public class TargetObject { public virtual ChildTargetObject ChildTargetObject { get { return ChildTargetObjectInner; } set { ChildTargetObjectInner = value; } } public virtual ChildTargetObject ChildTargetObjectInner { get; set; } } 配置和测试: var settings = new NinjectSettings { InjectNonPublic = true, AllowNullInjection = true }; var kernel = new StandardKernel(settings); kernel.Bind().ToSelf(); kernel.InterceptReplaceSet(t => t.ChildTargetObjectInner, […]