ASMX Web服务 - 拦截每个调用和更改参数

时间:2017-09-19 05:49:46

标签: c# web-services asmx

我有一些不同的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";
    }

    ...
}

0 个答案:

没有答案