2011-06-28 34 views
0

如何將完整的IList從應用程序發送到WCF?然後在該IList的基礎上,我想將數據保存在數據庫中。例如:如何將IList發送給WCF

我有以下功能在我的應用程序。

private IList<Users> UserList() { 

} 

現在在我的WCF,我有以下功能

public Void SaveUser(Users U) { 

} 

現在我想從我到WCF應用程序發送的UserList功能的完整列表,並調用SaveUser @ WCF。

我也可以通過調用WCF的SaveUser withing我的應用用戶列表的循環做循環的整個操作。但由於性能的原因,我想避免這種方法。

回答

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服務控制和可以添加到它的合同。

+0

謝謝大家,我已經以上述方式完成了:) – Raman

0

你的意思是通過發送WCF和不是「WCF」,您可以在序列化網絡應用程序發送的任何對象和反序列化的另一端連接到它的內容重新組合成原來的對象。這樣您就不需要循環,發送整個列表(序列化),而在另一端,您只需對每個項目執行特定操作。

+0

不,我想發送給WCF – Raman

0

如果我理解正確的話,SaveUser()是一個WCF經營合同,並且要發送用戶的列表,而不是SaveUsers分別發送它們。

編輯

只需發送用戶的列表中SaveUser方法。

public Void SaveUser(List<Users> ul) { } 

IList在WCF中完整支持。

我希望這會有所幫助。

+0

爲什麼添加DataContract時,你可以通過在列表中的服務? – CodingWithSpike

+0

我同意100%。你是對的。 – SaravananArumugam