我正在尝试学习面向方面编程的概念,并且我正在为此使用城堡项目动态代理。请参阅我编写的示例代码。
拦截器似乎没有拦截?或者我没有在我的控制台窗口中看到“调用前的内部拦截器”和“调用后的内部拦截器”。请建议我在这里做错了什么?
class AOP
{
static void Main(string[] args)
{
ProxyGenerator generator = new ProxyGenerator();
actual logger = generator.CreateClassProxy<actual>(new proxyforactual());
logger.add(3, 2);
}
}
public class proxyforactual : IInterceptor
{
public void Intercept(IInvocation invocation)
{
Console.WriteLine("Inside interceptor, before the call");
invocation.Proceed();
Console.WriteLine("Inside interceptor, after the call");
}
}
public class actual
{
public int add(int x, int y)
{
Console.WriteLine("Inside method");
return x + y;
}
}