Sandeep
Sandeep

Reputation: 766

Passing a Dictionary to WCF service

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?

Upvotes: 6

Views: 11303

Answers (3)

hgulyan
hgulyan

Reputation: 8249

There's MaxReceivedMessageSize, MaxStringContentLength and MaxBufferSize.

Check the link

Link

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!

Upvotes: 3

Johnny
Johnny

Reputation: 1575

Two things I need to know.

  1. 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

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

Upvotes: 4

Doobi
Doobi

Reputation: 4842

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.

Upvotes: 4

Related Questions