Asp.net 如何通过解析派生类来拦截父类方法?

Asp.net 如何通过解析派生类来拦截父类方法?,asp.net,unity-container,interception,Asp.net,Unity Container,Interception,下面是我的家长课 public class Parent { //This method is intercept-able using **VirtualMethodInterceptor** public virtual void Test() { //Do something } } public class Child:Parent { // This method directly not intercept-able but it calls base.

下面是我的家长课

public class Parent
{
  //This method is intercept-able using **VirtualMethodInterceptor**
  public virtual void Test()
  {
    //Do something
  }
 }
public class Child:Parent
{
 // This method directly not intercept-able but it calls base.Test() where   Test    is an intercept-able method
 public void Demo(){
   base.Test();
 }
}
下面是我的孩子班

public class Parent
{
  //This method is intercept-able using **VirtualMethodInterceptor**
  public virtual void Test()
  {
    //Do something
  }
 }
public class Child:Parent
{
 // This method directly not intercept-able but it calls base.Test() where   Test    is an intercept-able method
 public void Demo(){
   base.Test();
 }
}
现在我想使用Unity解析
Child
类的一个实例,其中
Demo
方法将被拦截。实际上,
Demo
方法不能被拦截,因为它不是虚拟的,但是这个方法在内部调用
base.Test()
其中,
Test
是可以被拦截的。那么如何解析
Child
类的可拦截实例呢

如果我将子类注册到unity容器中(如下图所示),则它不起作用

    container.RegisterType<Child>(
            new Interceptor<VirtualMethodInterceptor>(),
            new InterceptionBehavior<Interceptor>()
            )
container.RegisterType(
新的拦截器(),
新的拦截行为()
)

确保您已完成以下操作:

1) 您添加了
拦截
扩展,如下所示:

container.AddNewExtension<Interception>();
Child chlid = container.Resolve<Child>();

或者将
Child
作为某个类的依赖项,然后使用容器解析包含该类的对象图。

虽然我的代码中已经包含了上述内容,但无论如何,感谢您的建议。。首先,我想解决的子实例,这是罚款如上所述。现在,如果我使用子实例调用Demo()方法,那么Test()方法应该被拦截,因为Demo()在内部调用Test(),Test()是一个虚拟方法,所以它应该被VirtualMethodInterceptor Behavior拦截。我测试了您的场景,它在我的机器上工作。你能分享一个更完整的代码吗?