I need to pass a Dictionary (with max 20,000 entries) to a WCF service. Can I pass it all by once?
void SubmitDictionary(Dictionary<string, MyEntry> val);
where MyEntry is :
class MyEntry
{
string Name;
long Age;
}
Is there a configuration for size of the value passed? Or can we pass as large data as this?
Two things I need to know.
What type of binding r u using ? Like BasicHttpBinding or wsHttpBinding. If you are using wsHttpBinding you don't need to worry about it's length
Have you made your class serializeable? If not then make it like this:
[DataContract]
public Class MyEntry
{
[DataMember]
public string Name {get; set;}
[DataMember]
public long Age {get; set;}
}
You unfortunately have a bigger problem and that's that you can't serialize an IDictionary.
You're probably going to have to create an array or similar of a serializable custom key-value type.
There's MaxReceivedMessageSize, MaxStringContentLength and MaxBufferSize.
Check the link
http://geekswithblogs.net/niemguy/archive/2007/12/11/wcf-maxstringcontentlength-maxbuffersize-and-maxreceivedmessagesize.aspx
Read related question on how to increase size
wcf max message size
Silverlight & WCF: Max message size
EDIT Check also Service Reference's configuration. You should set Dictionary collection type to Dictionary.
Good Luck!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With