[英].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.