[英].net lambda expression and out parameter
我有一個WCF方法,它返回一個自定義對象數組,如“用戶”,“角色”或其他東西,它有頁面輸出。 WCF方法有out參數,存儲過程選擇行並返回所有行(不僅選中)的總記錄,而不是i讀出out參數中的返回值。 但是我在lambda表達式中調用WCF方法有一個問題:
var client = MySvcRef.MySvcClient();
var assistant = FormsAuthenticationAssistant();
var result = assistant.Execute<MySvcRef.UserClass[]>(
() => client.GetAllUsers(out totalRecords, pageIndex, pageSize),
client.InnerChannel);
我的例子有什么更好的解決方案
我沒有嘗試過帶參數的lambdas,但通常你只需要事先聲明變量:
var client = MySvcRef.MySvcClient();
var assistant = FormsAuthenticationAssistant();
var totalRecords;
var result = assistant.Execute<MySvcRef.UserClass[]>(
()=>client.GetAllUsers(out totalRecords, pageIndex, pageSize),
client.InnerChannel);
編輯 :
你可能最好的選擇是將GetAllUsers
包含在一個可以使用out
參數的單獨類中:
Temp temp = new Temp();
var result = assistant.Execute<MySvcRef.UserClass[]>(()=>temp.GetAllUsers(client, pageIndex, pageSize),client.InnerChannel);
int totalRecords = temp.TotalRecords;
...
class Temp
{
public int TotalRecords;
public MySvcRef.UserClass[] GetAllUsers(MySvcClient client, int pageIndex, int pageSize)
{
int totalRecords;
var result = client.GetAllUsers(out totalRecords, pageIndex, pageSize);
TotalRecords = totalRecords;
return result;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.