有什么方法可以避免C#xml序列化的混乱?

时间:2015-01-08 12:24:31

标签: c# serialization xml-serialization

我正在努力保持我的基础课程#34;清洁"使用XML序列化时,想知道是否还有其他选项。让我先解释一下情况。

我的基类看起来像这样:

public class Project
{
      public string Name { get; set; }

      public List<AbstractFlow> Flows { get; set; }         
}

public abstract class AbstractFlow
{
      public string Name { get; set; }

      [XmlArray("Steps")]
      [XmlArrayItem("Step", Type = typeof(AbstractSolutionSerializer<AbstractStep>))]
      public List<AbstractStep> Steps { get; set; }
}

public abstract class AbstractStep
{
      public string Name { get; set; }

      public int Length { get; set; }
}

这些是在库项目中,派生类驻留在另一个库中。我使用实现IXmlSerializable的自定义AbstractProjectSerializer来使用XML序列化,我需要创建一个中间类:

[XmlRoot("ProjectSerializer")]
public sealed class ProjectSerializer
{     
       public ProjectSerializer(Project project)
       {
             [XmlElement("Name")]
             public string Name { get; set; }

             [XmlArray("Flows")]
             [XmlArrayItem("Flow", Type = typeof(AbstractProjectSerializer<AbstractFlow>))]
             public string List<AbstractFlow> { get; set; }
       }
}

我很满意上面的中间类,但是你注意到我需要进入AbstractFlow并添加XML序列化特定的属性。这对我来说是污染&#34;基类并将它们与XML序列化联系起来。有没有其他方法可以达到我的目的?

0 个答案:

没有答案