вы можете сериализовать интерфейс, но не так просто, как классы:
http://ventspace.wordpress.com/2010/02/20/how-to-serialize-interfaces-in-net/
, но чтобы ответить на ваш вопрос, у меня есть 2 предположения по этому поводу:
Первыйпричина с практической стороны;Семантика сериализации интерфейса немного размыта.Как вы думаете, что сериализатор должен сериализовать при передаче ссылки на интерфейс?Если вы только сериализуете свойства интерфейса, то ваша десериализация может привести к неинициализированному объекту на полпути.Невозможно сказать, что бы это сделало с вашим приложением.
Если вы сериализуете полный объект вместе с информацией о типе, то сериализация интерфейса действительно ничего вам не даст.Вы могли бы напечатать ссылку как тип класса, во-первых, если ваше приложение действительно заботится о том, какой там объект.
Второй вариант соответствует заявленной цели XmlSerializer.Несмотря на вводящее в заблуждение название, XML Serialization в .NET Framework действительно является технологией привязки данных, основной целью которой является сопоставление типов данных MXL, определенных в схемах XSD, с типами .NET.Определение XSD знает об абстрактных базовых классах, но, поскольку оно ориентировано на данные, ничего не знает об интерфейсах.Имея это в виду, мало мотивации для поддержки интерфейсов в XmlSerializer.