Ich glaube, ich muss mal präziser werden.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| public class Foo { public Foo() { }
public String Changed = "timestamp";
public String Bar = "Hello World"; } |
Mit dem XmlSerializer erhalte ich folgendes XML ...
XML-Daten
1: 2: 3: 4: 5:
| <?xml version="1.0"?> <Foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Changed>timestamp</Changed> <Bar>Hello World</Bar> </Foo> |
Ich hätte es ja sehr gerne, dass Changed als XML-Attribut von Foo gespeichert wird. Es gibt die Möglichkeit mit den Attributen des XmlSerializer zu arbeiten ...
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| public class Foo { public Foo() { }
[XmlAttribute("Changed", DataType = "string")] public String Changed = "timestamp";
public String Bar = "Hello World"; } |
Aber wenn ich diese Attribute in den Klassen verwende, dann ist die Klasse in gewisser Weise schon für XML spezifiziert. Das möchte ich gerne vermeiden. Es soll in meinen Datenmodellen möglichst keine Festlegung auf ein Datenformat einfließen. Gibt es noch eine andere Möglichkeit, die Definitionen der Eigenschaften der Klasse so abzuändern, dass der XmlSerializer diese als Attribut rendert? Bei PHP kann man Eigenschaften statisch implementieren und dadurch werden die Eigenschaften zum XML-Attribut. Bei C# geht das leider nicht.
An einer Antwort ist mir sehr gelegen, da meine Entwicklung sonst stark ins Stocken kommt.
Vielen Dank schonmal.
Christian