2011-06-28 15 views
0

アプリケーションから完全なIListをWCFに送信するにはどうすればよいですか?そのIListに基づいて、私はデータベースにデータを保存します。例:IListをWCFに送信する方法

私のアプリでは以下の機能があります。

private IList<Users> UserList() { 

} 

は今私のWCFに私は機能

public Void SaveUser(Users U) { 

} 

の下には今、私はWCFに自分のアプリケーションからのUserList機能のリスト全体を送信し、SaveUser @ WCFを呼び出したいてきました。

私は、アプリケーション内で私のUSerListのwithループを使ってWCFのSaveUserを呼び出すことによってもループ全体の操作を行うことができます。しかし、パフォーマンス上の理由から、私はこの方法を避けたい。

答えて

1

あなたのWCFサービスは現在、そのメソッドをOperationContractとして定義しているとしますか?

// 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サービスを管理しているし、その契約にそれを追加することができると仮定すると、もちろんです:

[OperationContract] 
public Void SaveUser(Users U); 

あなただけのリストを取り、別の方法、またはArrayを追加することができます。

+0

ありがとう、私はすでに上記の方法で行った:) – Raman

0

"to WCF"ではなく、WCFを送信することを意味します。ネットワーキングアプリケーションで送信するオブジェクトをシリアル化し、反対側でデシリアライズして内容を元のオブジェクトに再編成できます。この方法で、ループする必要はありません、リスト全体(シリアル化された)を送信し、反対側では、それぞれの項目だけで特定の操作を行います。

+0

いいえこれをWCFに送信します – Raman

0

私が正しく理解していれば、SaveUser()はWCF操作規約であり、ユーザーのリストを個別に送信する代わりにSaveUsersに送信したいとします。

編集

単にSaveUser方法にユーザーのリストを送信します。

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

IListはWCFで完全サポートされています。

こちらがお役に立てば幸いです。

+0

サービスにリストを渡すだけの理由でDataContractを追加する理由は何ですか? – CodingWithSpike

+0

私は100%同意します。あなたは正しいです。 – SaravananArumugam

関連する問題