K3

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
代码
 class Program
    {
        
static void Main(string[] args)
        {
            s1.People p 
= new Sample.NameSpace1.People();
            p.Name 
= "Fisher"; p.Age = 28;

            
string xml = SerializeObject(p);

            Console.WriteLine(xml);

            s2.People p2 
= DeserializeObject(xml) as s2.People;


            Console.Write(p2.Name);

            Console.ReadKey();

        }

        
/// <summary>
        
/// Method to convert a custom Object to XML string
        
/// </summary>
        
/// <param name="pObject">Object that is to be serialized to XML</param>
        
/// <returns>XML string</returns>
        public static String SerializeObject(Object pObject)
        {
            
try
            {
                String XmlizedString 
= null;
                MemoryStream memoryStream 
= new MemoryStream();
                XmlSerializer xs 
= new XmlSerializer(typeof(s1.People));
                XmlTextWriter xmlTextWriter 
= new XmlTextWriter(memoryStream, Encoding.UTF8);
                xs.Serialize(xmlTextWriter, pObject);
                memoryStream 
= (MemoryStream)xmlTextWriter.BaseStream;
                XmlizedString 
= UTF8ByteArrayToString(memoryStream.ToArray());
                
return XmlizedString;
            }
            
catch (Exception e)
            {
                System.Console.WriteLine(e);
                
return null;
            }
        }

        
/// <summary>
        
/// To convert a Byte Array of Unicode values (UTF-8 encoded) to a complete String.
        
/// </summary>
        
/// <param name="characters">Unicode Byte Array to be converted to String</param>
        
/// <returns>String converted from Unicode Byte Array</returns>
        private static String UTF8ByteArrayToString(Byte[] characters)
        {
            UTF8Encoding encoding 
= new UTF8Encoding();
            String constructedString 
= encoding.GetString(characters);
            
return (constructedString);
        }

        
/// <summary>
        
/// Converts the String to UTF8 Byte array and is used in De serialization
        
/// </summary>
        
/// <param name="pXmlString"></param>
        
/// <returns></returns>
        private static Byte[] StringToUTF8ByteArray(String pXmlString)
        {
            UTF8Encoding encoding 
= new UTF8Encoding();
            Byte[] byteArray 
= encoding.GetBytes(pXmlString);
            
return byteArray;
        }

        
/// <summary>
        
/// Method to reconstruct an Object from XML string
        
/// </summary>
        
/// <param name="pXmlizedString"></param>
        
/// <returns></returns>
        public static Object DeserializeObject(String pXmlizedString)
        {
            XmlSerializer xs 
= new XmlSerializer(typeof(s2.People));
            MemoryStream memoryStream 
= new MemoryStream(StringToUTF8ByteArray(pXmlizedString));
            XmlTextWriter xmlTextWriter 
= new XmlTextWriter(memoryStream, Encoding.UTF8);
            
return xs.Deserialize(memoryStream);
        } 
    }


posted on 2010-05-25 05:20  K3  阅读(304)  评论(0编辑  收藏  举报