等到活动结束

时间:2017-02-08 17:11:31

标签: c# asp.net

尝试从Ajax调用此类方法(Invoke)。方法“StartLoginSignRequst”将触发Web服务请求。它将引发一个事件以从服务器获取响应。我希望得到OrderRef-GUID,它是从引发的事件中检索回到从Ajax-Call启动的web方法。

来自方法“Invoke”的返回字符串在事件结束之前返回,从而产生Null值字符串。如何在返回方法字符串“_orderref”之前确认事件已完成?

public static string OrderRef{ get; set; }

[WebMethod]
public static string Invoke(string usrCode)
    {
        string _orderref = null;
        try
        {
            StartLoginSignRequst(usrCode);
        }
        finally
        {
            _orderref  = OrderRef;

        }
        return _orderref  ;
    }
   private static void StartLoginSignRequst(string usrCode)
    {
        ServiceClass serviceclass= new ServiceClass ();
        try
        {
            SignRequestType srt= new SignRequestType();             
            srt.usrCode= usrCode;
            srt.usr= "testtest";

            serviceclass.SignAsync(srt);
            serviceclass.SignCompleted += StartLoginSignRequst_SignCompleted;

        }
        catch (SoapException sEx)
        {
            //error handler
        }


    }
    static void StartLoginSignRequst_SignCompleted(object sender, SignCompletedEventArgs e)
    {
        try
        {               
            OrderRef = e.Result.orderRef;

        }
        catch (TargetInvocationException tie)
        {
            //error handler
        }
    }

0 个答案:

没有答案