将字典传递给WCF服务

时间:2010-05-25 06:03:45

标签: c# dictionary wcf

我需要将一个Dictionary(最多20,000个条目)传递给WCF服务。我可以一次通过吗?

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

MyEntry在哪里:

class MyEntry
{
    string Name;
    long Age;
}

是否有传递值的大小配置?或者我们可以传递这么大的数据吗?

3 个答案:

答案 0 :(得分:4)

我需要知道两件事。

  1. 您使用什么类型的绑定?与BasicHttpBindingwsHttpBinding一样。如果您使用wsHttpBinding,则无需担心其长度

  2. 您是否已将课程序列化?如果没有,那就这样:

  3.     [DataContract]
        public Class MyEntry
        {
              [DataMember]
              public string Name {get; set;}
    
              [DataMember]
              public long Age {get; set;}
        }
    

答案 1 :(得分:4)

不幸的是,您遇到了一个更大的问题,那就是您无法序列化IDictionary。

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

答案 2 :(得分:3)

MaxReceivedMessageSize MaxStringContentLength MaxBufferSize

检查链接

http://geekswithblogs.net/niemguy/archive/2007/12/11/wcf-maxstringcontentlength-maxbuffersize-and-maxreceivedmessagesize.aspx

阅读有关如何增加规模的相关问题

wcf max message size

Silverlight & WCF: Max message size

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

祝你好运!