Loading...
hrimar avatar hrimar 6 Точки

Въпрос за десеризация на XML стринг с вградения метод за това

Здравейте,:

Опитвам се да реша отново Exam Preparation 1 - Instagraph и имам следния въпрос при десерилизирането на XML стринга (02. Data Import):

Защо с при ползването на вградения метод за десеризация на XML, който показа Владо в Exam Preparation II стрингът не се прочита?

Конкретният ми метод за десерилизация е тук https://pastebin.com/KWQTLHBH, а на закоментираните редове 6 и 7 се опитах да приложа вградения метод, но стрингът не се прочете.

При създаването на PostDto съм сложил само анотация на PostDto класа: [XmlType("Post")].

Странно защо Владо не го използва този вграден метод за десерилизация и при решаването на аналогичната задача за импорт на XML при авторското си решение изпитните задачи от 10/12/2017?

 

Също така неуспешно се опитвам да реша и обратното -  на Exam Preparation II да десеризарам XML стринг, но не с автоматичния метод, предложен от Владо, а на ръка...

Ако някой е търсил свои решения на тези задачи, ще ме разбере. Дано линкът с решението ми да е достатъчен.

 

ambiorix avatar ambiorix 640 Точки

[XmlType("Post")] трябва да е "post" (с малка буква) - все пак такъв е XML файлът. Иначе твоите 6 и 7 ред си работят ако промениш това. Редно е да дадеш .zip на целия проект за да мога да погледна в детайли.

Относно ръчното десериализиране на XML не съм го правил за втората подготовка, а само на първата та ако искаш погледни ако ти помогне с нещо: https://github.com/gaydov/Softuni-DB-Advanced/blob/master/Exams/ExamPrep-Instagraph/Instagraph.DataProcessor/Deserializer.cs

0
hrimar avatar hrimar 6 Точки

Благодаря за корекцията. Действително при това си решение (3 пъти я опитвах) съм написал Post, вместо post и така вече се десерилизара XML стринга към масив от PostDto-та, но всички пропъртитата на всяко Дто са null surprise

Ето и линк към зипа на задачата: https://drive.google.com/open?id=19teyxCteLrV8Dwwo-0eyvp3GQGTp3xsd

0
ambiorix avatar ambiorix 640 Точки

Ами проблемът е същият. Имената на пропертитата трябва да отговарят на тези от XML-a:

        [Required]
        [XmlElement("caption")]
        public string Caption { get; set; }

        [Required]
        [XmlElement("user")]
        public string User { get; set; }

        [Required]
        [XmlElement("picture")]
        public string Picture { get; set; }

 

0
19/12/2017 14:27:45
hrimar avatar hrimar 6 Точки

Да. Това е било проблемът. 

Огромни благодарности.

0
hrimar avatar hrimar 6 Точки

А за XML стринг с елемен "post" с атрибут "id" , като в долния пример от същата задача Exam Preparation 1 - Instagraph , какви би следвало да са анотациите за това пропърти при ползването на вградения метод за десеризация на XML?

<?xml version="1.0" encoding="utf-8"?>

<comments>

  <comment>

    <content>Wow! Wow, epic!! How?</content>

    <user>RoundAntigaBel</user>

    <post id="22" />

  </comment>

Опитах така, но не става:

        [Required]
        [XmlElement("post")]
        [XmlAttribute("id")]
        public string Post { get; set; }

 

0
19/12/2017 19:30:33
hrimar avatar hrimar 6 Точки

Благодаря (за трети пътsmiley )

0
hrimar avatar hrimar 6 Точки

Много интересно решение си дал при серилизацията на JSON (метод ExportOrdersByEmployee) на задачата от изпита surprise

Заслужава си да се види!

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.