C# 将字典传递给WCF服务
我需要将字典(最多20000个条目)传递给WCF服务。我能一次通过吗C# 将字典传递给WCF服务,c#,dictionary,wcf,C#,Dictionary,Wcf,我需要将字典(最多20000个条目)传递给WCF服务。我能一次通过吗 void SubmitDictionary(Dictionary<string, MyEntry> val); 传递的值的大小是否有配置?或者我们可以传递这么大的数据吗?我需要知道两件事 您使用什么类型的绑定?例如basichttppbinding或wsHttpBinding。如果您使用的是wsHttpBinding,则无需担心它的长度 你把你的类序列化了吗?如果没有,则按如下方式进行: [DataCo
void SubmitDictionary(Dictionary<string, MyEntry> val);
传递的值的大小是否有配置?或者我们可以传递这么大的数据吗?我需要知道两件事
basichttppbinding
或wsHttpBinding
。如果您使用的是wsHttpBinding
,则无需担心它的长度
[DataContract]
public Class MyEntry
{
[DataMember]
public string Name {get; set;}
[DataMember]
public long Age {get; set;}
}
有MaxReceivedMessageSize、MaxStringContentLength和MaxBufferSize 检查链接 阅读有关如何增加尺寸的相关问题 编辑同时检查服务参考的配置。您应该将字典集合类型设置为
字典
祝你好运 不幸的是,您有一个更大的问题,那就是无法序列化IDictionary
您可能需要创建一个数组或类似的可序列化自定义键值类型。我正在使用wsHttpBinding,并使用DCthen设置maxBufferPoolSize=“As u want”maxReceivedMessageSize=“As u want”和其他类似的东西,如maxStringContentLength=“As u want”maxArrayLength=“As u want”maxBytesPerRead=“As u want”maxNameTableCharCount=“As u want”XmlSerializer不支持此功能,但DataContractSerializer支持此功能。
[DataContract]
public Class MyEntry
{
[DataMember]
public string Name {get; set;}
[DataMember]
public long Age {get; set;}
}