Abrufen des Namens aller DataMembers in einem DataContract

7

Ich verwende den WCF-Dienst

Ich habe einen Datenvertrag:

%Vor%

Ist es möglich, dass ich den Namen aller DataMembers in dieser Klasse finden kann CustomBranches

Wie "ID", "Zweigname" usw.

Danke

    
G.S Bhangal 16.11.2011, 13:14
quelle

3 Antworten

4

Da es sich um einen Datenvertrag handelt, sollten Sie höchstwahrscheinlich alle diese Eigenschaften zur Verfügung haben, aber falls nicht, sollten die folgenden alle Eigenschaften Ihres Typs auflisten:

%Vor%

Ersetze T durch den Typ, und du bist gut zu gehen. Abhängig von Ihren Anforderungen möchten Sie möglicherweise BindingFlags .

    
nillls 16.11.2011, 13:22
quelle
14

Was Sie tun müssen:

  • Sie müssen [KnownType(typeof(CustomBranches))] in Ihrer CustomBranches -Klasse nicht hinzufügen. Eine Klasse weiß immer von sich selbst.
  • Sie müssen die Eigenschaften filtern, um nur solche mit dem [DataMember] -Attribut zu erhalten (der Code von nilllls gibt alle zurück)
  • Die Datenelementeigenschaften können auch nicht öffentlich sein (dies funktioniert, wenn die Serialisierung vollständig vertrauenswürdig ausgeführt wird)
  • Datenelemente können auch Felder sein (nicht nur Eigenschaften), Sie müssen sie also auch berücksichtigen.

Dies ist ein Beispiel für einen Code, der alle von ihnen ausführt.

%Vor%     
carlosfigueira 16.11.2011 15:05
quelle
3

Ich habe Carlos 'Antwort leicht modifiziert, um Datenmitglieder zu ignorieren, die mit einem [NonSerialized] -Attribut versehen sind:

%Vor%     
mbonness 17.07.2015 03:30
quelle

Tags und Links