[英]C# serialization: xml comes out empty
我正在嘗試使用SharpSerializer將對象序列化為xml文件。
不幸的是,生成的xml文件不包含我正在提供的任何信息。
我的代碼是這樣的:
public class SaveGameInfo
{
public string test;
}
public class main
{
public void onClickedSave()
{
SaveGameInfo obj = new SaveGameInfo();
obj.test = "TestInformation";
SharpSerializer sharpSerializer = new SharpSerializer();
sharpSerializer.Serialize(obj, "test.xml");
}
}
生成的XML僅包含以下信息:
<Complex name="Root" type="SaveGameInfo, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" />
感覺好像我缺少明顯的東西,但我不知道它是什么。
您應該使用屬性而不是字段:
public class SaveGameInfo
{
public string Test { get; set; }
}
public class main
{
public void onClickedSave()
{
SaveGameInfo obj = new SaveGameInfo();
obj.Test = "TestInformation";
SharpSerializer sharpSerializer = new SharpSerializer();
sharpSerializer.Serialize(obj, "test.xml");
}
}
注意2: SharpSerializer僅序列化對象屬性。 字段未序列化。 如果要序列化字段,則必須將它們包裝在屬性中。
也許不使用SharpSerializer嘗試一下。
public class main
{
public void onClickedSave()
{
SaveGameInfo obj = new SaveGameInfo();
obj.test = "TestInformation";
obj.SerializeToXml("Test.xml");
}
}
public class SaveGameInfo
{
public string test;
public void SerializeToXml(string fullFileName)
{
var serializer = new XmlSerializer(typeof(SaveGameInfo));
var textWriter = new StreamWriter(fullFileName);
serializer.Serialize(textWriter, this);
textWriter.Close();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.