如何从应用程序向WCF发送完整的IList?然后在IList的基础上,我想在数据库中保存数据。例如:
我的应用程序中有以下功能。
private IList<Users> UserList() {
}
现在在我的WCF中,我有以下功能
public Void SaveUser(Users U) {
}
现在我想将MyList的UserList函数的完整列表发送到WCF,并调用SaveUser @ WCF。
我也可以通过在Application中使用我的USerList的Loop调用WCF的SaveUser来完成Loop的整个操作。但由于性能原因,我想避免使用这种方法。
答案 0 :(得分:1)
我假设您的WCF服务当前将该方法定义为OperationContract?
[OperationContract]
public Void SaveUser(Users U);
您可以添加另一个采用List或Array的方法:
// added to the service interface
[OperationContract]
public Void SaveUsers(List<Users> users);
// added to the implementation of the service
public Void SaveUsers(List<Users> users) {
foreach(var user in users)
{
SaveUser(user);
}
}
这当然是假设您可以控制WCF服务并将其添加到合同中。
答案 1 :(得分:0)
您的意思是通过WCF发送而不是“发送到WCF”,您可以序列化要在网络应用程序中发送的任何对象,并在另一端对其进行反序列化,以将其内容重新组合到原始对象中。这样您就不需要循环,发送整个列表(序列化),另一端只对每个项目执行特定操作。
答案 2 :(得分:0)
如果我理解正确,SaveUser()是一个WCF操作合同,您想要将用户列表发送到SaveUsers而不是单独发送。
<强>被修改强>
只需将用户列表发送到SaveUser方法。
public Void SaveUser(List<Users> ul) { }
WCF完全支持IList。
我希望这会有所帮助。