2010-05-25 128 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