希望有人能幫助我。我有一個方法(user_login)而不是提示用戶登錄,然後生成並返回一個發票和一個標記。C#保存對象值
問題是,如果用戶已經登錄(我將它保存在列表中),則不得調用svr.logonex方法。我應該從前一個實例中檢索值。我想我必須保存svr變量,但我不知道該怎麼做。任何幫助將不勝感激。由於
下面是代碼:
public EPS30Ora.LogonResult User_Login(input_params inputparams)
{
EPS30Ora.EPS30Svr svr = new EPS30Ora.EPS30Svr();
if (Users.Exists(Username => Username.Username.Equals(inputparams.Username)))
{
List<input_params> selected = Users.Where(Username => Username.Username.Equals(inputparams.Username)).ToList();
svr.PrepareByMoney(selected[0].ck, 1, inputparams.meter_number, 10, 0, ref cal);
}
else
{
Log_Res = svr.LogOnEx("EDEESTE", inputparams.VSID, inputparams.Username, inputparams.Password, "EPS30Ora", ref inputparams.ck);
if (Log_Res == EPS30Ora.LogonResult.psOK)
{
try
{
Users.Add(inputparams);
object tr_bl = svr.GetInvoiceData(inputparams.ck, svr.Confirm(inputparams.ck));
}
catch (System.Runtime.InteropServices.COMException ex)
{
Trace.WriteLine("Se ha producido una excepción: " + ex);
}
}
}
return Log_Res;
}
我想你應該多提供一些背景資料。 – Guanxi
您可以在svr.LogOnEx方法之前進行檢查,以檢查用戶是否已經登錄(通過檢查列表中的值)。你可以有if語句,if(Users.IsLoggedOn(inputParams.UserName)){//什麼也不做} else {//svr.LogOnEx}。如果你想跟蹤svr變量,你可以創建一個全局變量,並在上述方法的每次迭代中將其設置爲等於svr變量。通過這種方式,該方法的下一次迭代,您將能夠引用前一次迭代的全局變量和當前迭代的局部變量。 –
非常感謝您的回答。我會嘗試if和全局變量並評論結果。 – user2386560