如何创建webservice方法结束时运行的方法?

时间:2012-06-07 08:38:20

标签: c# web-services

我有一个webservice并在构造函数中启动了很多方法。我需要很多这些“已结束”(例如数据库连接终止等),是否有一种简单而花哨的方式来做这个有点像构造函数(de-contructor),即。在webservice方法调用结束时运行的方法?在每种方法结束时重复所有事情,感觉必须有一种更聪明的方式。

我选择的语言是c#

2 个答案:

答案 0 :(得分:3)

这种做法怎么样?

    private void WebMethodAction()
    {
        Execute(() =>
        {
            Console.WriteLine("Hello World");
        });
    }

    private int WebMethodFunc(int a, int b)
    {
        return Execute(() =>
        {
            return (double)a / (double)b;
        });
    }        

    public void Execute(Action action)
    {
        // call Execute<T> and discard result
        Execute(() => { action.Invoke(); return true; });
    }

    public T Execute<T>(Func<T> func)
    {
        T result = func.Invoke();

        // cleanup
        Console.WriteLine("Cleanup");

        return result;
    }

答案 1 :(得分:0)

您可以使用try finally并将所有整理放在最后一部分中。

将其放在Web服务方法中:

[WebMethod]
public void DoSomething(string value)
{
    try
    {
       //Do Something
    }
    finally
    {
       //Tidy up after methods in the try have ended
    }
}