我正在製作一個C#應用程序,它需要將客戶數據序列化爲一個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" />
我是不是從錯誤的方式接近這一點,我應該使用不同的總的方法?
附註:我從來沒有見過任何人對創建Java風格存取像C#中的私人自動財產。您應該仔細閱讀一下屬性是什麼以及如何使用它們。 – Chris
@Fruchtzwerg謝謝你的回答,但我希望保持這兩個變量私人porpuse。 – Eyire
這非常好,但沒有必要讓它們成爲自動屬性{get;設置;}那樣。另外約定是在C#中使用PascalCasing而不是camelCasing! – Chris