2010-05-25 11 views
6

Ich muss ein Wörterbuch (mit max 20.000 Einträge) an einen WCF-Dienst übergeben. Kann ich alles einmal weitergeben?Übergeben eines Wörterbuchs an WCF-Dienst

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

wo MyEntry ist:

class MyEntry 
{ 
    string Name; 
    long Age; 
} 

Gibt es eine Konfiguration für die Größe des Wertes bestanden? Oder können wir so große Daten wie diese weitergeben?

Antwort

4

Zwei Dinge, die ich wissen muss.

  1. Welche Art von Bindung verwenden Sie? Wie BasicHttpBinding oder wsHttpBinding. Wenn Sie wsHttpBinding verwenden, brauchen Sie sich keine Gedanken über die Länge zu machen.

  2. Haben Sie Ihre Klasse serialisiert? Wenn nicht, dann machen es wie folgt aus:

[DataContract] 
    public Class MyEntry 
    { 
      [DataMember] 
      public string Name {get; set;} 

      [DataMember] 
      public long Age {get; set;} 
    } 
+1

Ich verwende wsHttpBinding und ich habe es mit DC eingerichtet – Sandeep

+0

dann gesetzt Set der MaxBufferPoolSize = „Wie u wollen“ MaxReceivedMessageSize = „Wie u wollen“ und andere Stoffe wie maxStringContentLength = „Wie u wollen“ MaxArrayLength = "Wie du willst " maxBytesPerRead =" Wie du willst "maxNameTableCharCount =" Wie du willst " – Johnny

4

Sie haben leider ein größeres Problem und das ist, dass Sie ein IDictionary nicht serialisieren können.

Wahrscheinlich müssen Sie ein Array oder ähnliches eines serialisierbaren benutzerdefinierten Schlüsselwerttyps erstellen.

+6

XmlSerializer unterstützt dies nicht, aber DataContractSerializer tut es. – Odrade

+0

danke. das beantwortet tatsächlich die Frage, die ich hatte –

Verwandte Themen