Я делаю приложение C#, которое требует, чтобы сериализовать данные Customer в XML-файл.C# возвратил свойства от объекта к XML
Так что я создал следующий класс, что я хочу, чтобы сериализовать позже:
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;
}
}
Метод, который я пытался это создать новый клиент, установить его свойства и вызвать SerializeObject() на нем.
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);
}
}
Файл создается, но на выходе содержит следующие две строки только:
<?xml version="1.0"?>
<Customer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />
ли я приближается это от неправильного пути, и я должен использовать общий другой метод?
Side Примечание: Я никогда не видел, чтобы кто создавать аксессоров в стиле Java для частная авто-собственность на C#. Вероятно, вы должны немного узнать о свойствах и о том, как они используются. – Chris
@Fruchtzwerg Спасибо за ваш ответ, но я хочу, чтобы эти две переменные были приватными на porpuse. – Eyire
Это прекрасно, но нет смысла создавать автоматические свойства с помощью {get; set;} вот так. Также соглашение должно использовать PascalCasing, а не camelCasing в C#! – Chris