Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XML сериализация 
V
    Опции темы
RastaDja
Дата 11.8.2011, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 337
Регистрация: 1.11.2010

Репутация: нет
Всего: 5



   Доброго времени суток!
   Никак не могу побороть такую задачу:
Нужно сериализовать в xml (с помощью XmlSerializer) такой класс
Код

//[XmlRoot("results")]
    public class Results
    {
    //    [XmlElement(ElementName = "parameters")]
        public Params parameters;

        public Results()
        {
            parameters= new Params2();
        }
    }

    public class Param
    {
    //    [XmlAttribute]
        public String Name;
     //   [XmlIgnore]
        public String Value;
       
        public Param(String _name, String _value = "")
        {
            Name = _name;
            Value = _value;
        }
    }

    public class Params
    {
        private ArrayList ParamList;
        public Params()
        {
            ParamList = new ArrayList();
        }
        public void AddParam(String _paramName, String _paramValue = "")
        {
            ParamList.Add(new Param2(_paramName, _paramValue));
        }

     //   [XmlElement]
        public Param[] Params
        {
            get
            {
                Param[] Params = new Param[ParamList.Count];
                ParamList.CopyTo(Params);
                return Params;
            }

            set
            {
                if (value == null)
                    return;
                Param[] Params = (Param[])value;
                ParamList.Clear();
                foreach (Param p in Params)
                    ParamList.Add(p);
            }
        }
    }

я хочу сериализовать это в xml вида
Код

<results>
   <parameters>
      <Param Name="name1" Value="Val1"></Param>
      <Param Name="name2" Value="Val2"></Param>
      <Param Name="name3" Value="Val3"></Param>
   </parameters>
</results>

Все мои попытки ничего не дали.
Помогите разобратся.
Спасибо.


--------------------
The more closely you look at one thing, the less closely can you see something else.
PM MAIL   Вверх
RastaDja
Дата 11.8.2011, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 337
Регистрация: 1.11.2010

Репутация: нет
Всего: 5



   Всегда так smile : целый день парился, решил написать на форум, написал, и через 15мин сам все решил.
   Может пригодится кому smile ?
Код

    public class Res
    {
        [XmlElement("parameters")]
        public Params s = new Params();
    }

    public class Params
    {
        [XmlIgnore]
        public ArrayList arr = new ArrayList();

        [XmlElement("parameter")]
        public Pa[] parameters
        {
            get
            {
                Pa[] Params = new Pa[arr.Count];
                arr.CopyTo(Params);
                return Params;
            }

            set
            {
                if (value == null)
                    return;
                Pa[] Params = (Pa[])value;
                arr.Clear();
                foreach (Pa p in Params)
                    arr.Add(p);
            }
        }
    }
    
    public class Pa
    {
        [XmlAttribute("Name")]
        public string Name = "";
        [XmlAttribute("Val")]
        public string Val = "";
       
        public Pa(String N, String v)
        {
            Name = N;
            Val = v;
        }

        public Pa()
        {
        }
    }

Код

<?xml version="1.0" encoding="utf-8" ?> 
<Res xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <parameters>
        <parameter Name="param1" Val="val1" Capt="" /> 
        <parameter Name="param1" Val="val1" Capt="" /> 
   </parameters>
</Res>


Это сообщение отредактировал(а) RastaDja - 11.8.2011, 14:07


--------------------
The more closely you look at one thing, the less closely can you see something else.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0893 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.