Сериализация Xml файла

Mandyson

Client
Регистрация
03.06.2012
Сообщения
410
Благодарностей
84
Баллы
28
Подскажите как разобрать(десериализировать) файл настроек InputSettings.
У заказчика проблема, что они никак не сохраняются, необходимо изобрести велосипед.
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
786
Баллы
113
Все саппорты поразбегались, наверно тестят новый билд.
да видимо не допилили еще, может в новой версии исправили.
 

Mandyson

Client
Регистрация
03.06.2012
Сообщения
410
Благодарностей
84
Баллы
28
Все саппорты поразбегались, наверно тестят новый билд.
да видимо не допилили еще, может в новой версии исправили.
Есть такое дело, именно для этого и изобретаем свой мопед.
Что же, на данный момент понял, что файлик у нас содержит главный элемент <InputSettings></InputSettings>, который включает подэлементы <InputSetting></InputSetting>, а те включает <Name>Имя</Name><Value>Значение</Value><OutputVariable>{-Variable.Переменная-}</OutputVariable>
Если более наглядно, то выглядит это так


Далее нам потребуется всё это дело разобрать и msdn вывел следующий вариант исполнения.
Для удобства, кто решится помочь сразу запихнул необходимые настройки в VS.
Оригинальная страничка поддержки http://msdn.microsoft.com/ru-ru/library/tz8csy73(v=vs.110).aspx

Код:
public class OrderedItem
    {
        public string InputSettings;
        public string InputSetting;
    }
private void button1_Click(object sender, EventArgs e)
        {
    
             XmlSerializer serializer = new
            XmlSerializer(typeof(OrderedItem));

            // A FileStream is needed to read the XML document.
            FileStream fs = new FileStream("C:\\settings.xml", FileMode.Open);
            XmlReader reader = XmlReader.Create(fs);

            // Declare an object variable of the type to be deserialized.
            OrderedItem i;

            // Use the Deserialize method to restore the object's state.
            i = (OrderedItem)serializer.Deserialize(reader);
            fs.Close();

            // Write out the properties of the object.
            string s = i.InputSettings;
            string s2 = i.InputSetting;
        }
В итоге выбивает на этом месте

и явно видно, что не соблюдены какие-то условия по формату.
 
Последнее редактирование:

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 706
Баллы
113
У заказчика проблема, что они никак не сохраняются, необходимо изобрести велосипед.
в смысле не сохраняются? как сохраняют? какая ошибка?
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
786
Баллы
113
в предпоследней версии настройки сохраняются, но импортировать их нельзя.
Mandyson, прежде чем изобретать велосипед из чужой машины подумайте о более простых вещях. Проще некуда хранить все настройки в обычном текстом файле или в таблице и подкидывать их перед запуском.
Опять же проваш xml - загуглите куда десереализуются данные и поймете почему вы ничего не сможете сделать в зенке и самое главно поймете что вы не тем занимаетесь.
 

Mandyson

Client
Регистрация
03.06.2012
Сообщения
410
Благодарностей
84
Баллы
28
в смысле не сохраняются? как сохраняют? какая ошибка?
Ошибки нет, они просто не сохраняются:-)
То есть человек ставит настройки, жмет ОК, но выбор не запоминается. У меня самого было так пару раз, правда проходило при перезапуске, но у него на ZennoBox это скорее как правило.
Код:
в предпоследней версии настройки сохраняются, но импортировать их нельзя.
Mandyson, прежде чем изобретать велосипед из чужой машины подумайте о более простых вещях. Проще некуда хранить все настройки в обычном текстом файле или в таблице и подкидывать их перед запуском.
Более просто сохранить в файлик - это да, но допустим вы хотите изменить настройки. В случае, если их с пару десятков, то человеку будет проще открыть входные параметры, выбрать и экспортировать всё в xml, нежели ковырятсья в тхт. Далее уже алгоритм будет их разбирать, таким образом мы исключаем фактор, что тхт может быть не правильно изменен, либо просто утерян. Если мы уже делаем решение, которое основывается на чужой машине, то стоит делать всё с оглядкой на неё.
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
786
Баллы
113
ладно, убедили, но все таки не советую вам десериализовывать настройки - все это у вас выльется в отдельную программу а это еще гемор дополнительный. Попробуйте сделать проще. Пусть у вас будет зеновская форма входных настроек.
Это та форма, которую вы хотите экспортировать, но оно не сохраняется.
После заполнения формы, человек запускает этот шаблон, который генерит настройки пусть хоть в xml - не важно. Важно что человеку в них лазит не нужно.
Эти настройки можно использовать в полноценном шаблоне, создав входящее поле типа файл для указания файла настроек.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 706
Баллы
113
Я не понимаю: как не сохраняется? Добавьтесь в скайп rostonix покажите по тимвьюеру.
 

Mandyson

Client
Регистрация
03.06.2012
Сообщения
410
Благодарностей
84
Баллы
28
Я не понимаю: как не сохраняется? Добавьтесь в скайп rostonix покажите по тимвьюеру.
Разобрались. Для сохранения настроек их надо сначала прописать, потом нажать ОК, потом опять открыть и только потом выгружать. Третий пункт не выполнялся.:-) Но сериализацию всё равно постараюсь понять и, т.к. тема посвящена ей, сделать примерчик.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)