将 Stopwatch 方法与 soap 接口一起使用

Using the Stopwatch method with a soap interface

我正在尝试在我的 soap 程序中实现一个秒表方法。该方法将启动秒表并在程序加载后停止秒表,我想在 asmx 页面上显示启动和停止之间经过的时间。

下面是我的代码,我试图在以下代码上实现秒表方法:

  public class WebService1 : System.Web.Services.WebService
{

    static private Authenticator auth = new Authenticator();
    Stopwatch sw = new Stopwatch();

    [WebMethod]

    public string Authenticate(string username, string password)
    {
        sw.Start();
        if (string.IsNullOrWhiteSpace(username) && string.IsNullOrWhiteSpace(password))
        {
            return "Please enter a username and password";
        }
        if (string.IsNullOrWhiteSpace(username))
        {
            return "Please enter your username!";
        }
        if (string.IsNullOrWhiteSpace(password))
        {
            return "Please enter your password!";
        }
        //Assigning the username and password variables to a bool called isvalid
        bool isvalid = auth.authenticated(username, password);
        {
            if (isvalid)//Not using == because im not comparing
            {
                return "Authenticated!";
            }
            else
            {
                return "Not Authenticated!";
            }
        }


        sw.Stop();
        long time = sw.ElapsedMilliseconds;
        return time.ToString();
        //  long time = sw.ElapsedMilliseconds;
        //  return time.ToString();             
    }
}

}

我的问题是 - 是否可以按照我的要求去做,如果可以的话,我目前所知道的是正确的,因为它行不通! (是的,我知道 .asmx 是遗留的)

您的代码在 return 语句被命中后未被命中。您只需将您的消息设置为一个变量,并在您调用的方法结束时 return 它。

据我了解,return 是您的方法调用停止的地方。没有进一步的处理发生。

如何return流逝的时间由您决定。您可以在函数中传递一个 long 变量 byref,return 来自该方法的对象,XML,一个具有特定结构的字符串,您可以在之后将其分解(类似于 "value to return|elapsed time"),等等