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'.yes というエラーがスローされます。私のコードには他にもありますが、これは基本的な部分です。これらはすべて同じアセンブリ内にあります。

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 に答える