2009-08-12 12 views
5

मैं एक ऐसी लाइब्रेरी को दोबारा करने की कोशिश कर रहा हूं जो एक्सएमएल के रूप में अपनी वस्तु को प्रसारित कर रहा है। हालांकि मुझे लगता है कि .NET Framework का XmlSerialzer serialization को संभाल सकता है, कक्षा में सभी ToXML फ़ंक्शन हैं। इसमें सभी स्ट्रिंग मानों को ऐसे फ़ंक्शन के माध्यम से रखा जा रहा है जो जैसे & और समान रूप से बच निकले।क्या XmlSerializer विशेष वर्णों से बचता है और?

क्या XmlSerializer स्वचालित रूप से उन पात्रों से बच नहीं जाता है?

उत्तर

10

हां यह करता है।

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); 
      } 
     } 
    } 
} 

रिटर्न

<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

सभी .NET एक्सएमएल एपीआई स्वाभाविक रूप से एक्सएमएल के नियमों को समझते हैं। यदि आवश्यक हो, तो वे < को &lt; आदि में बदल देंगे

संबंधित मुद्दे