Xml序列化不起作用

本文关键字:不起作用 序列化 Xml | 更新日期: 2023-09-27 18:24:04

我的XML序列化不起作用。

以下代码引发异常:

XmlSerializer x = new XmlSerializer(typeof(GeneralSettings));

我想我的GeneralSettings类出了问题?我搞不清楚到底是什么问题。

应序列化的类别:

[Serializable()]
class GeneralSettings
{
    // ---------------------------------------------------------------//
    #region Properties for settings
    // ---------------------------------------------------------------//
    public string ActiveLanguage { get; set; }
    public string ActiveLeague { get; set; }
    // ---------------------------------------------------------------//
    #endregion
    // ---------------------------------------------------------------//
    // ---------------------------------------------------------------//
    #region Constructors
    // ---------------------------------------------------------------//
    public GeneralSettings()
    {
        this.ActiveLanguage = "English";
        this.ActiveLeague = "";
    }
    // ---------------------------------------------------------------//
    #endregion
    // ---------------------------------------------------------------//
}

用于序列化和反序列化的My BaseSettings类

class BaseSettings
{
    protected static string FileName
    {
        get
        {
            return Path.Combine(Environment.CurrentDirectory, @"Settings'XML'GeneralSettings.xml");
        }
    }
    public static GeneralSettings Load()
    {
        using (var stream = new FileStream(FileName, FileMode.Open))
        {
            return (GeneralSettings)new XmlSerializer(typeof(GeneralSettings)).Deserialize(stream);
        }
    }
    public static void Save(GeneralSettings settings)
    {
        using (var stream = new FileStream(FileName, FileMode.Open))
        {
            XmlSerializer x = new XmlSerializer(typeof(GeneralSettings));
            x.Serialize(stream, settings);
        }
    }

提前感谢你对我的帮助!

Xml序列化不起作用

类必须是公共的,才能通过XmlSerializer类进行序列化。

将类的定义更改为:

public class GeneralSettings
{
    ...
}