C# 无法在C中初始化XML序列化程序# [可序列化] 公共类appData { 公共字符串数据文件{get;set;} 公共字符串日志文件{get;set;} 公共字符串上载URL{get;set;} 公共字符串RssURL{get;set;} public ICollection RssFeed=new Collection(); } 公共类Rss { [可序列化] 公共结构项 { 公共字符串GUID; 公共日期时间日期; 公共字符串标题; 公共字符串描述; 公共字符串链接; } } 内部静态appData appData; 私有静态XmlSerializer xml; 静态void Main() { xml=新的XmlSerializer(typeof(appData)); }

C# 无法在C中初始化XML序列化程序# [可序列化] 公共类appData { 公共字符串数据文件{get;set;} 公共字符串日志文件{get;set;} 公共字符串上载URL{get;set;} 公共字符串RssURL{get;set;} public ICollection RssFeed=new Collection(); } 公共类Rss { [可序列化] 公共结构项 { 公共字符串GUID; 公共日期时间日期; 公共字符串标题; 公共字符串描述; 公共字符串链接; } } 内部静态appData appData; 私有静态XmlSerializer xml; 静态void Main() { xml=新的XmlSerializer(typeof(appData)); },c#,visual-studio-2010,.net-4.0,xml-serialization,C#,Visual Studio 2010,.net 4.0,Xml Serialization,当我在VS 2010调试器中运行此程序时,它抛出一个错误反映类型为'FOL.appData'的错误。是的,我的代码确实有更多,但这是基本部分。这些都在同一个程序集中。查看您得到的内部异常。它将告诉您哪个字段/属性在序列化时遇到问题 通过使用[XmlIgnore()]属性对字段/属性进行修饰,可以从xml序列化中排除字段/属性 我不认为XmlSerializer使用了[Serializable]属性,所以我怀疑这就是问题所在 注意: 所有要序列化的类都必须具有无参数构造函数,因此无法序列化接口。查

当我在VS 2010调试器中运行此程序时,它抛出一个错误
反映类型为'FOL.appData'的错误。
是的,我的代码确实有更多,但这是基本部分。这些都在同一个程序集中。

查看您得到的内部异常。它将告诉您哪个字段/属性在序列化时遇到问题

通过使用[XmlIgnore()]属性对字段/属性进行修饰,可以从xml序列化中排除字段/属性

我不认为XmlSerializer使用了[Serializable]属性,所以我怀疑这就是问题所在

注意:

所有要序列化的类都必须具有无参数构造函数,因此无法序列化接口。

查看您得到的内部异常。它将告诉您哪个字段/属性在序列化时遇到问题

通过使用[XmlIgnore()]属性对字段/属性进行修饰,可以从xml序列化中排除字段/属性

我不认为XmlSerializer使用了[Serializable]属性,所以我怀疑这就是问题所在

注意:

所有要序列化的类都必须具有无参数构造函数,因此接口无法序列化。

接口无法序列化-您需要更改以下内容:

[Serializable]
public class appData
{
    public string DataFile { get; set; }
    public string LogFile { get; set; }
    public string UploadURL { get; set; }
    public string RssURL { get; set; }
    public ICollection<Rss.Items> RssFeed = new Collection<Rss.Items>();
}
public class Rss
{
    [Serializable]
    public struct Items
    {
        public string GUID;
        public DateTime Date;
        public string Title;
        public string Description;
        public string Link;
    }
}

internal static appData appData;
private static XmlSerializer xml;
static void Main()
{
    xml = new XmlSerializer(typeof(appData));
}
public ICollection RssFeed=new Collection();
为此:

public ICollection<Rss.Items> RssFeed = new Collection<Rss.Items>();
public Collection RssFeed=new Collection();

无法序列化接口-您需要更改此设置:

[Serializable]
public class appData
{
    public string DataFile { get; set; }
    public string LogFile { get; set; }
    public string UploadURL { get; set; }
    public string RssURL { get; set; }
    public ICollection<Rss.Items> RssFeed = new Collection<Rss.Items>();
}
public class Rss
{
    [Serializable]
    public struct Items
    {
        public string GUID;
        public DateTime Date;
        public string Title;
        public string Description;
        public string Link;
    }
}

internal static appData appData;
private static XmlSerializer xml;
static void Main()
{
    xml = new XmlSerializer(typeof(appData));
}
public ICollection RssFeed=new Collection();
为此:

public ICollection<Rss.Items> RssFeed = new Collection<Rss.Items>();
public Collection RssFeed=new Collection();