将字典传递给WCF服务

6

我需要将一个包含最多20,000个条目的字典传递给WCF服务。我可以一次性全部传递吗?

void SubmitDictionary(Dictionary<string, MyEntry> val);

其中MyEntry是:

class MyEntry
{
    string Name;
    long Age;
}

有没有传递值大小的配置?或者我们可以传递像这样的大数据吗?

3个回答

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
然后设置maxBufferPoolSize="随意" maxReceivedMessageSize="随意"和其他类似的东西,如maxStringContentLength="随意" maxArrayLength="随意" maxBytesPerRead="随意" maxNameTableCharCount="随意"。 - Johnny

4

很不幸,您面临一个更大的问题,那就是无法序列化IDictionary。

您可能需要创建一个可序列化的自定义键值类型的数组或类似物。


6
XmlSerializer 不支持此功能,但 DataContractSerializer 支持。 - Odrade

3
MaxReceivedMessageSize, MaxStringContentLengthMaxBufferSize
检查链接 Link 阅读有关如何增加大小的相关问题 wcf max message size Silverlight & WCF: Max message size 编辑 还要检查服务引用的配置。您应将 Dictionary collection type 设置为 Dictionary
祝你好运!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接