У меня общий тип:
public class Packet<T> where T : IContent
{
private int id;
public int Id { get { return this.id; } }
private T content;
public T Content { get { return this.content; } }
}
Я хочу десериализовать / сериализовать экземпляры этого типа из / в XML. IContent определяется так:
public interface IContent
{
XmlSerializer Serializer{get;}
}
По сути, я хотел бы, чтобы Packet использовал сериализатор, предоставляемый его содержимым, для сериализации и десериализации своего элемента содержимого. Этот сериализатор на самом деле является экземпляром предварительно скомпилированного сериализатора xml, созданного sgen.exe.
Можно ли без Packet<T> реализовать IXmlSerializable?





Да, вы можете реализовать собственный класс напрямую с IXmlSerializable.
Для получения дополнительной информации см. Статью это.
Если вы используете Generic Type, он не может создать предварительно заполненный XmlSerializer.
Я хочу сказать, что я хотел бы избежать настраиваемой сериализации с использованием IXmlSerializable. (См. Последнюю строчку вопроса.)