序列化数据集在列中丢失自定义数据类型

时间:2012-08-18 00:02:06

标签: c# serialization dataset

我通过WCF传递数据集和/或在会话管理器中对其进行序列化。 反序列化对象后,数据从自定义列中消失。在序列化对象之前,我可以验证数据是否存在。自定义对象用于实现字母数字排序,它使用[Serializable]属性。数据集不是强类型的。

要遵循的解决方案......

2 个答案:

答案 0 :(得分:0)

自定义数据类型可以在数据集中序列化,但它们需要实现IXmlSerializable接口。

using System;
using System.Text;
using System.Xml;
using System.Xml.Schema;
using System.Xml.Serialization;

  [Serializable]
  public class AlphaNumericSort : IComparable, IXmlSerializable
  {
...
    // Xml Serialization Infrastructure 
    public void WriteXml (XmlWriter writer)
    {
        writer.WriteString(_Value);
    }

    public void ReadXml (XmlReader reader)
    {
        _Value = reader.ReadString();
    }

    public XmlSchema GetSchema()
    {
        return(null);
    }

答案 1 :(得分:0)

传递数据集或数据表不是一个好习惯。 因此,迭代数据集中的数据表并填充要序列化的自定义类或类集合(不要忘记设置datacontract和datamember属性)