如何将IList发送到WCF

时间:2011-06-28 13:29:45

标签: wcf

如何从应用程序向WCF发送完整的IList?然后在IList的基础上,我想在数据库中保存数据。例如:

我的应用程序中有以下功能。

private IList<Users> UserList() {

}

现在在我的WCF中,我有以下功能

public Void SaveUser(Users U) {

}

现在我想将MyList的UserList函数的完整列表发送到WCF,并调用SaveUser @ WCF。

我也可以通过在Application中使用我的USerList的Loop调用WCF的SaveUser来完成Loop的整个操作。但由于性能原因,我想避免使用这种方法。

3 个答案:

答案 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。

我希望这会有所帮助。