ГЛАВНАЯ     АРХИВ     НАПИСАТЬ АДМИНУ     ПОДПИСАТЬСЯ НА RSS     ВОЙТИ      

Поиск

Категории

Облако тегов

  << Предыдущий пост       Следующий пост >>  
От: inbruk
16. декабря 2014 16:47

C#

Часто возникает вопрос у начинающих программистов и не только как удобно сериализовать объекты в XML на C#. Есть несколько постов на разных известных ресурсах. Но, все равно возникают вопросы и проблемы с кодировками. Чтобы не тратить массу времени ищущим, я в этом посте покажу как это делать с учетом кодировки. Тут используется generic. Но вам, конечно, никто не мешает делать без него. Просто в той задаче для которой делалось это было удобно. Можно серализовать/десериализовать и другими методами. Но эта реализация меня во всем устроила и я ее использовал несколько раз.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
using System.IO;
using System.Xml;

namespace SomeNamespace
{
    internal static class SomeConfigurationSerializer
        where CONF_CLASS : class
    {
        public static CONF_CLASS String2Configuration(String source)
        {
            if (string.IsNullOrEmpty(source))
            {
                return null;
            }

            XmlSerializer serializer = new XmlSerializer(typeof(CONF_CLASS));
            UTF8Encoding encoding = new UTF8Encoding();
            Byte[] dataInBytes = encoding.GetBytes(source);
            using (MemoryStream stream = new MemoryStream(dataInBytes))
            {
                XmlTextReader xtr = new XmlTextReader(stream);
                CONF_CLASS result = (CONF_CLASS) serializer.Deserialize(xtr);
                return result;
            }
        }
        public static String Configuration2String(CONF_CLASS source) 
        {
            String result = null;
            XmlSerializer serializer = new XmlSerializer(typeof(CONF_CLASS));
            using (MemoryStream stream = new MemoryStream())
            {
                XmlTextWriter xtw = new XmlTextWriter(stream, Encoding.UTF8);
                serializer.Serialize(xtw, source);
                result = Encoding.UTF8.GetString(stream.ToArray());
            }            

            return result;
        }
    }
}

Похожие записи


Вопросы на собеседовании C#, Net, ASP.NET, SQL
Продолжая тему вопросов на собеседовании. Нашел еще одну подборку. Оригинал лежит здесь . Перенес, чтобы не затерялось. Есть вполне вменяемые ответы (хотя, на некоторые вопросы ответил бы по-другому). Ответы находятся после списка вопросов, я их не менял. 23. Что такое шаблон проектирования Model/View/Controller? Как и зачем его применяют? 2...

Способы заработка на сайте
На этом блоге было много постов про производство и раскрутку сайтов. Но пока не было про заработок на них. Пора исправить этот недочет. Здесь будут описаны по возможности не фантастичные, и не супер низко прибыльные способы. Также упор будет сделан именно на организацию процесса, а не технических деталях, которых в обилии в интернете. Несмотря на то, что как пр...

Silverlight, HTML5 и непрозрачная стратегия развития Microsoft
Оригинал статьи взят отсюда: Silverlight, HTML5 и непрозрачная стратегия развития Microsoft Автор: Peter Bright Переводчик: Mairon     По непонятным мне на данный момент причинам, похоже, что многие разработчики, присутствовавшие на недавней конференции PDC-2010 (Крупнейшая конференция Microsoft для разработчиков — Прим. переводчика), были сильн...

Добавить комментарий




biuquote
  • Комментарий
  • Предпросмотр
Loading


  Сохранить комментарий