2009-08-12 46 views
5

Tôi đang cố gắng tái cấu trúc thư viện truyền nó là đối tượng dưới dạng XML. Mặc dù tôi nghĩ rằng XmlSerialzer của .NET Framework có thể xử lý tuần tự hóa, tất cả các lớp đều có hàm ToXML. Trong đó tất cả các giá trị chuỗi được đặt qua một hàm thoát ký tự như & và giống nhau.XmlSerializer có thoát khỏi các ký tự đặc biệt như &?

Trình XmlSerializer không tự động loại bỏ các ký tự đó?

Trả lời

10

Có.

using System; 
using System.Collections.Generic; 
using System.Text; 
using System.Xml.Serialization; 
using System.Xml; 

namespace TestXmlSerialiser 
{ 
    public class Person 
    { 
     public string Name; 
    } 

    class Program 
    { 
     static void Main(string[] args) 
     { 
      Person person = new Person(); 
      person.Name = "Jack & Jill"; 

      XmlSerializer ser = new XmlSerializer(typeof(Person)); 

      XmlWriterSettings settings = new XmlWriterSettings(); 
      settings.Indent = true; 

      using (XmlWriter writer = XmlWriter.Create(Console.Out, settings)) 
      { 
       ser.Serialize(writer, person); 
      } 
     } 
    } 
} 

lợi nhuận

<Person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <Name>Jack &amp; Jill</Name> 
</Person> 
1

Tất cả các API XML tự nhiên hiểu các quy tắc của XML. Nếu cần, chúng sẽ thay đổi < thành &lt; v.v.

Các vấn đề liên quan