【问题标题】:Intercept object created not from ninject kernel拦截不是从 ninject 内核创建的对象
【发布时间】:2011-05-29 04:19:48
【问题描述】:

假设我有一堂课:

public class SomeClass {
    public virtual void InterceptedMethod ()
    {
        // Do something.
    }
}

我正在使用带有 interception 扩展名的 Ninject。我想拦截InterceptedMethod。如果我从 ninject 内核创建对象,该方法将被拦截。

kernel = InitializeKernel ();
SomeClass objectFromKernel = kernel.Get<SomeClass> ();
objectFromKernel.InterceptedMethod (); // this method is intercepted.

但是,如果我不是从内核创建对象,则不会拦截该方法。

kernel = InitializeKernel ();
SomeClass objectSelfCreated = new SomeClass ();
objectSelfCreated.InterceptedMethod (); // this method is NOT intercepted.

是否可以使用 ninject 拦截自创对象?如果可能,我该怎么做?

【问题讨论】:

    标签: ninject-2 ninject-extensions


    【解决方案1】:

    在这种情况下,No Ninject 无法为您提供帮助。您必须自己创建代理或更改设计,以便对象由 Ninject 创建。有关如何执行此操作,请参阅代理工厂的文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-04
      • 1970-01-01
      相关资源
      最近更新 更多