在WebSharp的AOP部分,目前的IAspect接口是这样的。
public interface IAspect
{
    void PreProcess(IMessage msg,object obj);
    void PostProcess(IMessage msg,object obj);
}
也就是说,方法被拦截时,无法访问方法所属的对象。我个人觉得,当方法被拦截时,能访问方法所属的对象会更实用一些。
请问,如果实现在方法别拦截时访问当前别拦截的方法所在的对象?

解决方案 »

  1.   

    需要被拦截类,实现IAspect接口实现:  void PreProcess(IMessage msg,object obj);
            void PostProcess(IMessage msg,object obj);
    这两个方法。其中obj不就这个类的实例么?
    比如:class MyClass : IAspect
    {
        public void PreProcess(msg, this);
    }
      

  2.   

    对不起,我把接口写错了,下面是我希望的样子。
    public interface IAspect
    {
        void PreProcess(IMessage msg,object obj);
        void PostProcess(IMessage msg,object obj);
    }
    原来的接口是这样的。
    public interface IAspect
    {
        void PreProcess(IMessage msg);
        void PostProcess(IMessage msg);
    }