2010-05-25 140 views
6

我需要將字典(最多20,000條目)傳遞給WCF服務。我可以通過一次嗎?將字典傳遞給WCF服務

void SubmitDictionary(Dictionary<string, MyEntry> val); 

其中MyEntry是:

class MyEntry 
{ 
    string Name; 
    long Age; 
} 

是否有值的大小配置通過呢?或者我們可以像這樣傳遞大量數據嗎?

回答

4

我需要知道的兩件事。

  1. 什麼類型的綁定使用?像BasicHttpBindingwsHttpBinding。如果您使用的是wsHttpBinding,則無需擔心它的長度

  2. 您是否讓您的課程可序列化?如果沒有那麼做出這樣的:

[DataContract] 
    public Class MyEntry 
    { 
      [DataMember] 
      public string Name {get; set;} 

      [DataMember] 
      public long Age {get; set;} 
    } 
+1

我使用的wsHttpBinding,我已經與DC – Sandeep 2010-05-25 06:28:23

+0

裝飾它然後設置設置 maxBufferPoolSize =「如u想」 maxReceivedMessageSize =「爲u想要」等類似的東西= maxStringContentLength「爲u想要」的MaxArrayLength =「作爲你想要「 maxBytesPerRead =」因爲你想要「maxNameTableCharCount =」正如你想要的「 – Johnny 2010-05-25 06:53:00

4

你不幸有一個更大的問題,那就是你不能序列化一個IDictionary。

您可能將不得不創建一個數組或類似的可序列化的自定義鍵值類型。

+6

XmlSerializer不支持這個,但DataContractSerializer呢。 – Odrade 2011-09-28 23:41:43

+0

謝謝。這實際上回答了我所遇到的問題 – 2012-01-12 11:58:23