0
[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));
}

当我在 VS 2010 调试器中运行它时,它会抛出错误There was an error reflecting type 'FOL.appData'.,是的,我的代码确实有更多,但这是基本部分。这些都在同一个程序集中。

4

2 回答 2

2

接口不能被序列化——你需要改变它:

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

对此:

public Collection<Rss.Items> RssFeed = new Collection<Rss.Items>();
于 2012-06-04T22:16:04.277 回答
1

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

您可以通过使用[XmlIgnore()]属性装饰它们来从 xml 序列化中排除字段/属性。

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

注意:
所有要序列化的类都必须有一个无参数的构造函数,因此接口不能被序列化。

于 2012-06-04T22:12:58.367 回答