Entwickler-Ecke

IO, XML und Registry - Attribute zur Steuerung der XML-Serialisierung


derprogrammier69 - Mi 29.01.14 13:11
Titel: Attribute zur Steuerung der XML-Serialisierung
Hi meine neuen Freunde :) ,
habe ein kleines Problemchen und iwie keinen Ansatz :(
Die Aufgabe besteht darin, ein Zielformat einer XML-Datei zu verändern:


XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
[...]
  <OrderItems>
    <OrderItem>
      <ItemName>Playstation 4</ItemName>
      <Description>Beste Konsole zur Zeit auf dem Markt.</Description>
      <UnitPrice>499</UnitPrice>
      <Quantity>1</Quantity>
    </OrderItem>
    <OrderItem>
      <ItemName>PS4 Controller</ItemName>
      <Description>Echt ergonometrisch.</Description>
      <UnitPrice>59</UnitPrice>
      <Quantity>2</Quantity>
    </OrderItem>
  </OrderItems>
[...]



-> daraus soll von Gebrauch von XML-Attributen folgendes werden:
http://msdn.microsoft.com/de-de/library/83y7df3e%28v=vs.90%29.aspx (hier findet ihr die Attribute)


XML-Daten
1:
2:
3:
4:
5:
6:
[...]
<Items>
<Item ItemName="PS4" Description="Beste Konsole zur Zeit auf dem Markt." UnitPrice="499" Quantity="1">
<Item ItemName="PS4 Controller" Description="Echt ergonometrisch." UnitPrice="59" Quantity="2">
</Items>
[...]


Vielen Dank für schnelle und kompetente Hilfe. MFG Peta

Moderiert von user profile iconChristian S.: XML-Tags hinzugefügt


Christian S. - Mi 29.01.14 13:15

Und was ist jetzt die Frage? :gruebel:


derprogrammier69 - Mi 29.01.14 13:49

Hi,
meine Frage ist, was ich vor public OrderItem[]... für ein (evtl. mehrere) XML-Attribut (in der Art wie z.B. [XmlAttribute]) setzen muss, damit sich die obere XML-Version in die untere verwandelt...


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
public class PurchaseOrder
        {
            public Address ShipTo;

            [XmlAttribute] //so wandert das XML-Element "OrderDate" als XML-Attribute in die Titelzeile
            public String OrderDate; 

            public OrderItem[] OrderItems = new OrderItem[2]; //hier nur zum Testen 2 OrderItems im Array
            public decimal ShipCost;


MFG

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Christian S. - Mi 29.01.14 14:03

Wie ein OrderItem serialisiert wird, wird in der Klasse OrderItem bestimmt. Das heißt wenn die Properties / Felder als XML-Attribute serialisiert werden, musst Du dort die entsprechenden C#-Attribute vor die Properties / Felder setzen.


Ralf Jansen - Mi 29.01.14 14:06

Das Naming der Tags über XMLArray und XMLArrayItem und der Rest durch Attributieren in der OrderItem Klasse. Mit dem von dir schon angedeuteten XmlAttribute Attribute.


derprogrammier69 - Mi 29.01.14 14:10

Danke schonmal für die Antwort, probiere das heute Abend mal aus und melde mich dann nochmal! MFG


derprogrammier69 - Do 30.01.14 15:43

hi, wieder vielen dank für die tips, hab exakt die gewünschte ausgabe erhalten. mfg