zoukankan      html  css  js  c++  java
  • 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);
            } 
        }


  • 相关阅读:
    C语言格式化字符串细节 --- %*s %*c %*.*s
    ROC曲线与AUC计算总结
    python 数字列表排序,输出对应的索引 | 转载
    python 类间的有趣调用
    Linux下以16进制形式显示文件内容的方法
    一些书签
    椭圆曲线算数原理与实现
    中国剩余定理来解密RSA密文
    在GridView控件内文本框实现TextChanged事件,勾选复选框时 :textbox文本框可编辑,编辑文本框的数字后 总金额会重新计算并统计
    关于RDLC子报表添加参数 错误“本地报表处理期间出错 。值不能为空。 参数名:value” 错误解决方法
  • 原文地址:https://www.cnblogs.com/sskset/p/1743215.html
Copyright © 2011-2022 走看看