Здравствуйте, Михаил Романов, Вы писали:
МР>Здравствуйте, 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)