Является ли утверждение в вопросе правильным?BinaryFormatter обрабатывает больше случаев, чем XmlSerializer?
Например, кажется, что нет никакого способа, чтобы сериализовать код ниже (массив смешанных типов) с XmlSerializer в то время как BinaryFormatter работает просто отлично:
using System.IO;
[Serializiable]
class ParentCls
{
int k;
}
[Serializiable]
class X : ParentCls
{
string name = "foobar";
}
[Serializiable]
class Y : ParentCls
{
double price = 32.0;
}
class Program
{
static void Main(string[] args)
{
ParentCls[] data = new ParentCls[] { new X(), new Y() };
using (Stream stream = File.Open("tmp.bin", FileMode.Create))
{
var binaryFormatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
binaryFormatter.Serialize(stream, data);
}
}
}
Существуют случаи, когда XmlSerialiser может делать то, что BinaryFormatter не может do (т. е. где использование XmlSerialiser - единственный способ)?