0
をシリアル化できません:は、私は、このデータのモデルを持っているコレクションのコレクション
public abstract class AbstractCollection
{
}
public abstract class TypedAbstractCollection<T1> : AbstractCollection
{
}
public class MyCollection<T> : TypedAbstractCollection<T>, IEnumerable<T>
{
private readonly List<T> _valueList = new List<T>();
public IEnumerator<T> GetEnumerator()
{
return _valueList.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
public void Add(T value)
{
_valueList.Add(value);
}
}
[XmlInclude(typeof(MyCollection<string>))]
public class Shallow : IEnumerable<AbstractCollection>
{
private readonly List<AbstractCollection> _listOfCollections = new List<AbstractCollection>();
public IEnumerator<AbstractCollection> GetEnumerator()
{
return _listOfCollections.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
public void Add(AbstractCollection sample)
{
_listOfCollections.Add(sample);
}
}
私は自動的にコレクションとしてそれをシリアル化するには、[追加()関数で、私のコレクションにIEnumerableを使用しますが、私はそれをシリアル化しようとすると、 XML:私はすべての必要な情報がなくても奇妙なエラーを持っている
Shallow shallow = new Shallow
{
new MyCollection<string>
{
"first",
"second"
}
};
XmlSerializer formatter = new XmlSerializer(shallow.GetType(),
new[] { typeof(OneWayMapper<string, string>) });
using (FileStream fs = new FileStream("data.xml", FileMode.OpenOrCreate))
{
formatter.Serialize(fs, shallow);
}
:
型 'MyCollection' Uがないかもしれませんこのコンテキストでsed
しかし、MyCollectionクラスMyItem<T>
の代わりにタイプされた項目値を使用すると、エラーは発生しません。 だからではなく、コレクションのコレクションと、その上の型付きコレクション、抽象クラスとして大丈夫です。
どうすれば修正できますか?
私は '公共の読み取り専用リスト ListOfCollections =新しいリスト()' とMyCollectionsを保存すると 'XmlArray' を使用しようとしたが、それは助けたdid't。私も同じエラーがありました。 –