2009-08-27 10 views
0

Ich habe einen basicHttpBinding WCF-Dienst. Über den Vertrag exponiere ich eine Methode, die als Argument eine IEnumerable<myType> übernimmt. myType Klasse erbt von ISerializable und ich implementieren GetObjectData() und der Konstruktor myType(SerializationInfo info, StreamingContext context)WCF-Service-Methode Argumente

Wenn ich die Methode in meinem WCF Vertrag verlassen, die IEnumerable<myType> als Argument nimmt, kann ich nicht mehr wirklich den Service nutzen. Ich kann eine Referenz hinzufügen, aber es gibt keine der Methoden, die ich erwarte.

Ich habe etwas gelesen Ich habe viele Leute gesehen, die Leute die Argumente an ihre Netzwerkmethoden übergeben lassen, verwenden Sie das [XmlSerializerFormat] Attribut.

Ich nehme es Ich versuche, binäre Serialisierung zu verwenden, und das funktioniert nicht. Gibt es irgendeine Art von WCF-Diensten, die die Übertragung von Binärdateien ermöglichen, oder müssen alle XML-seriell sein? Wenn ja, wie stelle ich sicher, dass myType XML Serializable ist.

Antwort

1

Sie sollten Data Contract Serialization lesen und implementieren. Siehe Using Data Contracts. Verwenden Sie den XML-Serializer nicht, es sei denn, Sie benötigen eine präzise Kontrolle über die "Form" der XML-Datei auf dem Draht.