请问一下关于xml 序列化问题:
如何定义一个类,比如:public class a
{    
    String Pic ;
    String voice ;
}
可以序列化成:
<?xml version="1.0" encoding="utf-8"?>
<a>
    <Pic   path ="c:\pic1.jpg">
    <voice path ="c:\voice1.avi">
</a>
这个类应该点样写啊?

解决方案 »

  1.   

    就是自己添加两个方法。一个写,创建一个XMLDocument,然后按照楼主的要求写数据,一个读,从合法的格式中读属性。
    应该没有什么其他的方法吧。或者专门写一个类,用Reflection的方法,枚举希望序列化的实例的属性,生成规定格式的XML片段。
      

  2.   

    <?xml version="1.0" encoding="utf-8"?>
    <a>
        <Pic>c:\pic1.jpg</Pic>
        <voice>c:\voice1.avi</void>
    </a>a _a = new a();
    XmlSerializer serializer = new XmlSerializer(_a.GetType());serializer.Serialize(Response.OutputStream,_a);
    Response.End();发送xml序列化后的_a实例  用于客户端刷新
      

  3.   

    a a1 = new a();
    a1.Pic = @"c:\pic1.jpg";
    a1.voice = @"c:\voice1.avi";
    XmlWriter writer = new XmlTextWriter(@"C:\test.xml",System.Text.Encoding.UTF8);
    XmlSerializer serializer = new XmlSerializer(a1.GetType());
    XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces(new  XmlQualifiedName[]{new XmlQualifiedName(String.Empty,String.Empty)});
    serializer.Serialize(writer,a1,namespaces);
    writer.Close();
    [XmlRoot]
    public class a
    {    
    [XmlElement]
    public String Pic;
    [XmlElement]
    public String voice;
    }
    <?xml version="1.0" encoding="utf-8"?>
    <a>
    <Pic>c:\pic1.jpg</Pic>
    <voice>c:\voice1.avi</voice>
    </a>