Re[4]: .Net Core, WCF и ODATA клиенты
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 16.09.16 13:56
Оценка:
Здравствуйте, Михаил Романов, Вы писали:

МР>Здравствуйте, Serginio1, Вы писали:


S>> Я показал пример.

S>> Который вместо DataSet возвращает ArrayOfXElement. Все работает.
МР>Хм... Я правильно понимаю, что ArrayOfXElement это XElement[]? Т.е. массив XML-фрагментов?
МР>Мне кажется что при таком результате как-то не очевидна польза от использования WCF, т.к. всё равно результат придется парсить руками, а это можно было сделать и просто поверх обычного HttpClient (ну парсить пришлось бы больше, это правда).

МР>Возможно, просто пример сервиса попался не слишком удачный.


Да. Но это обычная проактика, для структур которые WCF не может определить.

 public partial class ArrayOfXElement : object, System.Xml.Serialization.IXmlSerializable
    {
        
        private System.Collections.Generic.List<System.Xml.Linq.XElement> nodesList = new System.Collections.Generic.List<System.Xml.Linq.XElement>();
        
        public ArrayOfXElement()
        {
        }
        
        public virtual System.Collections.Generic.List<System.Xml.Linq.XElement> Nodes
        {
            get
            {
                return this.nodesList;
            }
        }
        
        public virtual System.Xml.Schema.XmlSchema GetSchema()
        {
            throw new System.NotImplementedException();
        }


Это понятно. Можно распарсить в ExpandoObject. Например Creating a dynamic object from XML using ExpandoObject

или
Converting XML to an Dynamic Object using ExpandoObject

Можно по схеме Создать классы и десериализовать. Для меня главное посмтреть как работает под .Net Core и чего не хватает по сравнению с большим .Net.
Там кстати есть аналоги но с XML

public System.Threading.Tasks.Task<System.Xml.Linq.XElement> EnumValutesXMLAsync(bool Seld)
и солнце б утром не вставало, когда бы не было меня
Отредактировано 16.09.2016 14:08 Serginio1 . Предыдущая версия . Еще …
Отредактировано 16.09.2016 14:02 Serginio1 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.