.Net Core, WCF и ODATA клиенты
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 16.09.16 08:58
Оценка: 6 (2)
Написал одноименную статью. Может кому пригодится.
.Net Core, WCF и ODATA клиенты
и солнце б утром не вставало, когда бы не было меня
Отредактировано 16.09.2016 9:20 Serginio1 . Предыдущая версия . Еще …
Отредактировано 16.09.2016 9:01 Serginio1 . Предыдущая версия .
Re: .Net Core, WCF и ODATA клиенты
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 16.09.16 12:12
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Написал одноименную статью. Может кому пригодится.

S>.Net Core, WCF и ODATA клиенты
Я так и не понял, вы смогли решить проблему с чтением результатов в виде DataSet или нет?
А то в статье есть только

Так как с DataSet идет схема. Я вспомнил про Accessing XML Schema Information During Document Validation и хотел сделать чтение по схеме в ExpandoObject. Но в .Net Core пока нет XmlSchema.


И еще — может я слишком бегло смотрел, но я не нашел примера использования сервиса — только пример настройки.
Re[2]: .Net Core, WCF и ODATA клиенты
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 16.09.16 13:39
Оценка:
Здравствуйте, Михаил Романов, Вы писали:

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


S>>Написал одноименную статью. Может кому пригодится.

S>>.Net Core, WCF и ODATA клиенты
МР>Я так и не понял, вы смогли решить проблему с чтением результатов в виде DataSet или нет?
МР>А то в статье есть только
МР>

Так как с DataSet идет схема. Я вспомнил про Accessing XML Schema Information During Document Validation и хотел сделать чтение по схеме в ExpandoObject. Но в .Net Core пока нет XmlSchema.


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

var dataset = await client.EnumValutesAsync(false);


Который вместо DataSet возвращает ArrayOfXElement. Все работает.
МР>И еще — может я слишком бегло смотрел, но я не нашел примера использования сервиса — только пример настройки.

Правда доступ к кишкам только через OperationContextScope

using (OperationContextScope scope = new OperationContextScope(client.InnerChannel))
            {
                var httpRequestProperty = new HttpRequestMessageProperty();
                httpRequestProperty.Headers[System.Net.HttpRequestHeader.Authorization] = "Basic " +
                Convert.ToBase64String(Encoding.UTF8.GetBytes(client.ClientCredentials.UserName.UserName + ":" +
                client.ClientCredentials.UserName.Password));
                OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] =
                   httpRequestProperty;
            }
и солнце б утром не вставало, когда бы не было меня
Re[3]: .Net Core, WCF и ODATA клиенты
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 16.09.16 13:50
Оценка:
Здравствуйте, Serginio1, Вы писали:

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

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

Возможно, просто пример сервиса попался не слишком удачный.
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 . Предыдущая версия .
Re[5]: .Net Core, WCF и ODATA клиенты
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 16.09.16 14:07
Оценка: +1
Здравствуйте, Serginio1, Вы писали:

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

Я понимаю, просто хочу сказать, что, мне кажется, что статья сильно бы выиграла, если бы вы довели пример до уровня "бери и используй".
Re[6]: .Net Core, WCF и ODATA клиенты
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 16.09.16 14:10
Оценка:
Здравствуйте, Михаил Романов, Вы писали:

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


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

МР>Я понимаю, просто хочу сказать, что, мне кажется, что статья сильно бы выиграла, если бы вы довели пример до уровня "бери и используй".

Ну по сути то там так же как и большом .Net. Я написал какие есть отличия. Там и так большой объем получился.
и солнце б утром не вставало, когда бы не было меня
Re[6]: .Net Core, WCF и ODATA клиенты
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 19.09.16 07:43
Оценка:
Здравствуйте, Михаил Романов, Вы писали:

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


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

МР>Я понимаю, просто хочу сказать, что, мне кажется, что статья сильно бы выиграла, если бы вы довели пример до уровня "бери и используй".
Михаил, а есть какие то сервисы для тестов SignalR? Пока для 2.2
и солнце б утром не вставало, когда бы не было меня
Re[7]: .Net Core, WCF и ODATA клиенты
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 19.09.16 11:09
Оценка: 16 (1)
Здравствуйте, Serginio1, Вы писали:

S> Михаил, а есть какие то сервисы для тестов SignalR? Пока для 2.2

Не встречал.
Подозреваю, что нет, т.к., как я понимаю, это не како-то стандарт, а всего лишь реализация push-фреймворка поверх нескольких транспортов (от длинного запроса до web sockets).
Re[8]: .Net Core, WCF и ODATA клиенты
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 19.09.16 11:19
Оценка:
Здравствуйте, Михаил Романов, Вы писали:

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


S>> Михаил, а есть какие то сервисы для тестов SignalR? Пока для 2.2

МР>Не встречал.
МР>Подозреваю, что нет, т.к., как я понимаю, это не како-то стандарт, а всего лишь реализация push-фреймворка поверх нескольких транспортов (от длинного запроса до web sockets).

Спасибо. Подыму тогда свой для тестов 1C Messenger для отправки сообщений, файлов и обмена данными между пользователями 1С, вэб страницы, мобильными приложениями а ля Skype, WhatsApp
Посмотрю.
и солнце б утром не вставало, когда бы не было меня
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.