C# 将字典传递给WCF服务

C# 将字典传递给WCF服务,c#,dictionary,wcf,C#,Dictionary,Wcf,我需要将字典(最多20000个条目)传递给WCF服务。我能一次通过吗 void SubmitDictionary(Dictionary<string, MyEntry> val); 传递的值的大小是否有配置?或者我们可以传递这么大的数据吗?我需要知道两件事 您使用什么类型的绑定?例如basichttppbinding或wsHttpBinding。如果您使用的是wsHttpBinding,则无需担心它的长度 你把你的类序列化了吗?如果没有,则按如下方式进行: [DataCo

我需要将字典(最多20000个条目)传递给WCF服务。我能一次通过吗

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;}
        }
    

    MaxReceivedMessageSizeMaxStringContentLengthMaxBufferSize

    检查链接

    阅读有关如何增加尺寸的相关问题

    编辑同时检查服务参考的配置。您应该将字典集合类型设置为
    字典


    祝你好运

    不幸的是,您有一个更大的问题,那就是无法序列化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;}
        }