> Cannot serialize member System.Collections.Generic.IList`1[MyType]] because it is an interface.
Сериализовать свойство "public IList MyList" можно, если использовать XmlAttributeOverrides, а вот генерики что-то не сдаются.
SomeClass sc = new SomeClass();
sc.MyList.Add(new MyType());
sc.MyList.Add(new MyType());
sc.SerializeTo("some.xml");
...
public class MyType
{
public string Text = Guid.NewGuid().ToString();
}
public class SomeClass
{
public
IList MyList
{
get { return myList; }
set
{
}
}
private List<MyType> myList = new List<MyType>();
public void SerializeTo(string filename)
{
XmlElementAttribute attr = new XmlElementAttribute();
attr.ElementName = "MyType";
attr.Type = typeof(MyType);
XmlAttributes attrs = new XmlAttributes();
attrs.XmlElements.Add(attr);
XmlAttributeOverrides attrOverrides = new XmlAttributeOverrides();
attrOverrides.Add(this.GetType(), "MyList", attrs);
XmlSerializer s = new XmlSerializer(this.GetType(), attrOverrides);
TextWriter writer = new StreamWriter(filename);
s.Serialize(writer, this);
writer.Close();
}
}
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение