XmlSerializer, sgen.exe и дженерики - PullRequest
1 голос
/ 06 января 2009

У меня есть универсальный тип:

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?

Ответы [ 2 ]

1 голос
/ 07 января 2009

Да, вы можете реализовать собственный класс напрямую с помощью IXmlSerializable.
Для получения дополнительной информации см. эту статью.

0 голосов
/ 25 августа 2009

Если вы используете общий тип, он не может создать предварительно заполненный XmlSerializer.

...