【问题标题】:XmlSerializer, sgen.exe and genericsXmlSerializer、sgen.exe 和泛型
【发布时间】:2009-01-06 15:35:07
【问题描述】:

我有一个泛型类型:

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 使用其内容提供的序列化程序来序列化和反序列化其内容成员。这个序列化器实际上是 sgen.exe 生成的预编译 xml 序列化器的一个实例。

是否可以不让Packet&lt;T&gt; 实现IXmlSerializable

【问题讨论】:

    标签: c# .net xml-serialization sgen


    【解决方案1】:

    是的,您可以使用 IXmlSerializable 直接实现自定义类。
    有关详细信息,请参阅this 文章。

    【讨论】:

    • 我的意思是我想避免使用 IXmlSerializable 进行自定义序列化。 (见最后一个问题。)
    【解决方案2】:

    如果您使用的是通用类型,它无法生成预先完成的 XmlSerializer。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-09
      • 2011-07-12
      • 2011-04-11
      • 1970-01-01
      • 2010-11-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多