2012-04-05 7 views
0

Ich muss einen WCF-Dienst entwickeln, der einige vordefinierte Felder und einige unbekannte Felder erhalten soll. Ich hätte gerne ein Dictionary [String, Objekt] DataMember, um diese unbekannten Felder zu erhalten, aber jede Lösung, die funktioniert, wird mich glücklich machen.Wie kann ich unbekannte Felder in einem WCF-Datenvertrag erhalten?

Ich habe mit IExtensibleDataObject herumgespielt und sogar geschafft, die unbekannten Felder in ihm zu bekommen, aber ich konnte nicht auf die Daten von ihm zugreifen, nur um sie mit dem Debugger zu sehen. Wenn jemand weiß, wie ich auf diese Daten zugreifen kann, lass es mich wissen.

Vielen Dank!

+0

Sie sollten 'für Inline-Code dh verwenden. 'Dictionary [Zeichenfolge, Objekt]'. Es sei denn, Sie hatten einen Grund für Kursivdruck? – RyanS

Antwort

1

Warum nicht einfach eine Eigenschaft des Typs Dictionary erstellen und diese in Ihren Datenvertrag aufnehmen?

[DataMember] 
public Dictionary<string,object> ExtraFields { get; set; } 

Edit:ExtensibleDataObject für Round-Tripping Szenarien gemeint ist, aus diesem Grund die Mitglieder sind auf den Dienst nicht sichtbar. Es gibt einige workarrounds, aber ich denke, es ist besser, es explizit in einer anderen Eigenschaft zu tun.

+0

Hallo Akzent, ich habe es versucht aber das Feld ExtraFields wurde nicht initialisiert, blieb null. Muss ich etwas anderes einstellen, um diese Technik anzuwenden? – fredzvt

+0

Sie müssen initialisieren und setzen die Werte explizit im Client, um dies zu verwenden. Es verwendet keine Magie, nur alte WCF-Eigenschaften. – aKzenT

+0

Sorry Akzent, ich verstehe immer noch nicht, was ich zu tun habe. Können Sie mir ein Beispiel oder einen Link zeigen, der erklärt, wie das geht? – fredzvt

Verwandte Themen