1

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

我选择的语言是 c#

4

2 回答 2

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;
    }
于 2012-06-07T08:43:22.103 回答
0

您可以使用try finally并将所有整理内容放在 finally 部分中。

将其放在 Web 服务方法中:

[WebMethod]
public void DoSomething(string value)
{
    try
    {
       //Do Something
    }
    finally
    {
       //Tidy up after methods in the try have ended
    }
}
于 2012-06-07T08:40:45.497 回答