尝试从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
}
}