Ich mache eine C# -Anwendung, die erfordert, Kundendaten in eine XML-Datei zu serialisieren.C# hat Eigenschaften von einem Objekt an XML zurückgegeben
Also habe ich die folgende Klasse, was ich später serialisiert werden soll:
public class Customer {
private string name{get; set;}
private int age{get; set;}
public void setCustomerAge(){
age = 20;
}
public void setCustomerName(string input){
name = input;
}
public string customerName(){
return name;
}
public int customerAge(){
return age;
}
}
Die Methode, die ich versucht habe, ist, einen neuen Kunden zu erstellen, stellen Sie Eigenschaften ist und rufen Sie die SerializeObject() auf sie.
public void newCustomer(){
Customer cust = new Customer();
cust.setCustomerName("TEST");
cust.setCustomerAge();
SerializeObject(cust, savePath)
}
public void SerializeObject<T>(T serializableObject, string fileName) {
if(serializableObject == null) {
return;
}
try {
XmlDocument xmlDocument = new XmlDocument();
XmlSerializer serializer = new XmlSerializer(serializableObject.GetType());
using(MemoryStream stream = new MemoryStream()) {
serializer.Serialize(stream, serializableObject);
stream.Position = 0;
xmlDocument.Load(stream);
xmlDocument.Save(fileName);
stream.Close();
}
} catch(Exception ex) {
Debug.WriteLine(ex);
}
}
Die Datei wird erzeugt, aber die Ausgabe enthält diese beiden Zeilen nur:
<?xml version="1.0"?>
<Customer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
Bin ich dies von einem falschen Weg nähern und sollte ich eine ganz andere Methode verwenden?
Randbemerkung: Ich habe noch nie jemand Java-Stil Accessoren für ein gesehen erstellen private auto-property in C# gefällt das. Sie sollten wahrscheinlich ein wenig darüber nachdenken, welche Eigenschaften und wie sie verwendet werden. – Chris
@Fruchtzwerg Vielen Dank für Ihre Antwort, aber ich möchte diese zwei Variablen privat auf porpuse behalten. – Eyire
Das ist völlig in Ordnung, aber es hat keinen Sinn, sie mit {get; einstellen;} so. Auch die Konvention ist, PascalCasing nicht camelCasing in C# zu verwenden! – Chris