序列化一个对象,其属性为xml

时间:2008-12-26 15:29:52

标签: xml serialization

完全重复:Is there a way to do object (with its attributes) serializing to xml?

相当具有讽刺意味的是,这是海报上一个问题的重复。


我想创建一个对象,它包含一些Validate应用程序块属性,如:  [序列化]     公共类FormElement:IValidated     {

    [StringLengthValidator(1, 50, MessageTemplate = "The Name must be between 1 and 50 characters")]
    public String username
    {
        get;
        set; 
    }

    [RangeValidator(2007,RangeBoundaryType.Inclusive,6000,RangeBoundaryType.Inclusive,MessageTemplate="input should be in 2007 to 6000")]
    public int sequencenumber
    {
        get;
        set;
    }

    [RegexValidator(@"^\d*\.{0,1}\d+$", MessageTemplate = "input value can not be empty or negative")]
    public string medicalvalue
    {
        get;
        set;
    }

}

如何将这些属性序列化为xml?感谢

2 个答案:

答案 0 :(得分:1)

使用XmlSerializer类:

//Create serializer instance, passing in the type of the class 
XmlSerializer serializer = 
  new XmlSerializer(typeof(FormElement));
// Create a FileStream to write with (could be any other stream)
Stream writer = new FileStream(filename, FileMode.Create);
// Serialize the object, and close the TextWriter
 serializer.Serialize(writer, i);
writer.Close();

从我的经验来看,序列化错误是相当清楚的,如果你也要反序列化并且希望处理错误,那么XmlSerializer类有几个用户事件可以连接。

答案 1 :(得分:0)

您希望将类序列化为XML。它不会序列化单个属性或元素。

使用this class来完成您需要的工作,但要使用它。有时很难对反序列化对象时发生的错误进行故障排除。这可能是重要的用户需要更改XML文件(配置等)并且不能正确执行。