Heim > Backend-Entwicklung > C#.Net-Tutorial > Detaillierte Erläuterung von Codebeispielen der C#-XML-Serialisierungsklasse

Detaillierte Erläuterung von Codebeispielen der C#-XML-Serialisierungsklasse

黄舟
Freigeben: 2017-03-03 11:49:15
Original
1561 Leute haben es durchsucht

Detaillierte Erläuterung der Codebeispiele der C#-XML-Serialisierungsklasse

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
using Imps.Services.CommonV4;


namespace Imps.Services.IDCService.Utility
{
    public class XMLSerializerEx
    {
        private static ITracing _tracing = TracingManager.GetTracing("XMLSerializerEx");
        /// <summary>
        /// 对象转换成XML
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static string SaveXmlFromObj<T>(T obj)
        {
            if (obj == null) return null;
            XmlSerializer serializer = new XmlSerializer(typeof(T));


            XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
            namespaces.Add(string.Empty, string.Empty);
            
            MemoryStream stream = new MemoryStream();
            XmlTextWriter xtw = new XmlTextWriter(stream, Encoding.UTF8);
            xtw.Formatting = Formatting.Indented;
            try
            {
                serializer.Serialize(stream, obj,namespaces);
            }
            catch { return null; }


            stream.Position = 0;
            string returnStr = string.Empty;
            using (StreamReader sr = new StreamReader(stream, Encoding.UTF8))
            {
                string line = "";
                while ((line = sr.ReadLine()) != null)
                {
                    returnStr += line;
                }
            }
            return returnStr;
        }




        public static T LoadObjFromXML<T>(Stream s)
        {
            XmlSerializer serializer = new XmlSerializer(typeof(T));
            try
            {
                return ((T)serializer.Deserialize(s));
            }
            catch { return default(T); }
        }


        /// <summary>
        /// XML反序列化到对象
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="data"></param>
        /// <returns></returns>
        public static T LoadObjFromXML<T>(string data)
        {
            using (MemoryStream stream = new MemoryStream())
            {
                using (StreamWriter sw = new StreamWriter(stream, Encoding.UTF8))
                {
                    sw.Write(data);
                    sw.Flush();
                    stream.Seek(0, SeekOrigin.Begin);
                    return LoadObjFromXML<T>(stream);


                }
            }
        }
        
    }
}
Nach dem Login kopieren

Das Obige ist die detaillierte Erläuterung der Codebeispiele der C#-Klasse!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage