我需要将字典(最多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