Интересно, есть ли способ сериализации в xml класс, содержащий список обобщенных элементов?Выглядит это так:
class Program
{
static void Main(string[] args)
{
var o = new ContainerClass();
o.Values = new List<SomeClass> {new SomeClass<int>(), new SomeClass<long>()};
XmlSerializer xs = new XmlSerializer(typeof(ContainerClass));
MemoryStream buffer = new MemoryStream();
using (TextWriter writer = new StreamWriter(buffer))
{
xs.Serialize(writer, o); // InvalidOperationException here
}
var xml = Encoding.UTF8.GetString(buffer.ToArray());
}
}
public class ContainerClass
{
public List<SomeClass> Values { get; set; }
}
public class SomeClass
{
}
public class SomeClass<T> : SomeClass
{
}
Я знаю, что есть способ передавать дополнительные типы в сериализатор, но сейчас нет способа показать каждую комбинацию, которая может появиться.Я пытался реализовать IXmlSerializable I различными способами без успеха.
Есть идеи, как с этим бороться?
Я также открыт для внешних библиотек, если есть какие-либо, которые могут с этим справиться.