C# 面向方面编程在Web服务中的应用
我正在寻找一种将AOP概念应用于web服务的方法。创建一个普通类很容易做到这一点 示例MyClassC# 面向方面编程在Web服务中的应用,c#,.net,web-services,aop,C#,.net,Web Services,Aop,我正在寻找一种将AOP概念应用于web服务的方法。创建一个普通类很容易做到这一点 示例MyClass MyClass NewClass = MyProxyClassManager.CreateNewAOPClass(typeof(MyClass)); 通常,您可以通过这种方式创建类的新实例 MyClass NewClass = new MyClass(); 要使用AOP创建该类的实例及其周围的方面,通常需要一个库来指定类类型和要应用的方面 示例MyClass MyClass NewClas
MyClass NewClass = MyProxyClassManager.CreateNewAOPClass(typeof(MyClass));
通常,您可以通过这种方式创建类的新实例
MyClass NewClass = new MyClass();
要使用AOP创建该类的实例及其周围的方面,通常需要一个库来指定类类型和要应用的方面
示例MyClass
MyClass NewClass = MyProxyClassManager.CreateNewAOPClass(typeof(MyClass));
但是,在尝试为附加到Web服务的类执行此操作时,这是一个挑战。
我需要一种方法,可以基于web服务类返回代理类,而不是返回附加到web服务的普通类
顺便说一句:我正在使用castle项目申请AOP。
我不确定您是否有完整的技术堆栈,但通过WebAPI,您可以创建自定义的DelegatingHandler来包装服务调用。有关更多详细信息,请参阅 示例处理程序:
public class MessageHandler1 : DelegatingHandler
{
protected async override Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request, CancellationToken cancellationToken)
{
Debug.WriteLine("Process request");
// Call the inner handler.
var response = await base.SendAsync(request, cancellationToken);
Debug.WriteLine("Process response");
return response;
}
}