XML Serialize Desrialize Across Namespace

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


你可能感兴趣的:(namespace)