簡體   English   中英

C#序列化:xml空出

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM