我需要將字典(最多20,000條目)傳遞給WCF服務。我可以通過一次嗎?將字典傳遞給WCF服務
void SubmitDictionary(Dictionary<string, MyEntry> val);
其中MyEntry是:
class MyEntry
{
string Name;
long Age;
}
是否有值的大小配置通過呢?或者我們可以像這樣傳遞大量數據嗎?
我需要將字典(最多20,000條目)傳遞給WCF服務。我可以通過一次嗎?將字典傳遞給WCF服務
void SubmitDictionary(Dictionary<string, MyEntry> val);
其中MyEntry是:
class MyEntry
{
string Name;
long Age;
}
是否有值的大小配置通過呢?或者我們可以像這樣傳遞大量數據嗎?
我需要知道的兩件事。
什麼類型的綁定使用?像BasicHttpBinding
或wsHttpBinding
。如果您使用的是wsHttpBinding
,則無需擔心它的長度
您是否讓您的課程可序列化?如果沒有那麼做出這樣的:
[DataContract]
public Class MyEntry
{
[DataMember]
public string Name {get; set;}
[DataMember]
public long Age {get; set;}
}
有MaxReceivedMessageSize,MaxStringContentLength和MAXBUFFERSIZE。
檢查鏈路上如何增加大小
Silverlight & WCF: Max message size
編輯檢查也服務引用的配置
閱讀相關的問題。您應該設置字典收集類型至Dictionary
。
祝你好運!
你不幸有一個更大的問題,那就是你不能序列化一個IDictionary。
您可能將不得不創建一個數組或類似的可序列化的自定義鍵值類型。
XmlSerializer不支持這個,但DataContractSerializer呢。 – Odrade 2011-09-28 23:41:43
謝謝。這實際上回答了我所遇到的問題 – 2012-01-12 11:58:23
我使用的wsHttpBinding,我已經與DC – Sandeep 2010-05-25 06:28:23
裝飾它然後設置設置 maxBufferPoolSize =「如u想」 maxReceivedMessageSize =「爲u想要」等類似的東西= maxStringContentLength「爲u想要」的MaxArrayLength =「作爲你想要「 maxBytesPerRead =」因爲你想要「maxNameTableCharCount =」正如你想要的「 – Johnny 2010-05-25 06:53:00