我有一些不同的asmx Web服务,我需要通过某种行为进行扩展。我需要能够访问传入的参数并在某些条件下更改它们。
我尝试实现SoapExtensionAttribute但是没有用。我的SoapExtension从未被调用过,我相信其背后的原因是我无法在客户端配置它,因为我没有访问它。
有没有办法在执行方法之前挂钩Web服务调用并更改参数?我真的不想在每个Web服务方法的开头都添加相同的代码......
这里有一个例子,说明如果我找不到更好的解决方案,我将不得不做的事情:
[WebService(Namespace="MyWebServices", Description="MyWebService")]
public class MyWebService : System.Web.Services.WebService
{
...
[WebMethod]
public string MyWebServiceMethod1(string parameter)
{
ChangeParameter(parameter);
return "Hello this is my WebService";
}
[WebMethod]
public string MyWebServiceMethod2(string parameter, string parameter2)
{
ChangeParameter(parameter);
ChangeParameter(parameter2);
return "Hello this is my WebService";
}
...
}