@CSharpChatЭта группа больше не существует

Страница 891 из 1888
viktor
26.04.2017
20:03:52
отож

Сергей
26.04.2017
20:04:01
Не ну рили

Нужно сутки быть производительным? Вот тебе решение. Кофе хуефе, лол

Можешь и не сутки

Google
Сергей
26.04.2017
20:04:48
Главное быть адекватным и не злоупотреблять

viktor
26.04.2017
20:21:28
Тогда еще один вопрос, но уже по C#, хотя даже не совсем по C#, а по подходу решению задачи.

Вот есть некий сервис, который мы вызываем в синхронном режиме, в ответ получаем XMl. Есть три варианта ответа (соответственно три зазные Xml) 1) Для физ лиц. 2)Для юр лиц. 3) Ошибка. Мне получается нужно определить что это за XML, к какому типу относится и запихнуть ответ в соответствующую модель. определять ошибку буду (Linq to xml)вот таким вот образом. XDocument xdoc = XDocument.Load("xml.xml"); XElement rootElemet = xdoc.Element("root"); XElement responseElemet = rootElemet.Element("response"); XAttribute responsecodeAttribute = responseElemet.Attribute("code");

а физ лицо от юрика по другим атрибутам

Но в таком случае мой код будет похож на веретено IFElse конструкций, а я этого очень не хочу. Потом Unitttest хрен напишешь, да и вообще не читабельное говно.

Mikhail
26.04.2017
20:27:36
А сервис сторонний и его исправить нельзя?

viktor
26.04.2017
20:27:52
Да, сторонний

Mikhail
26.04.2017
20:28:56
А может лучше десериализовать XML в класс а не linq2xml юзать

?

viktor
26.04.2017
20:29:23
Для проянения общей картину скажу что это проект Банка, я разраб ан стороне консалтинга. Все интеграции будут через сервисы шины, а шина в свою очередь будет работать со всякими абисами, платежными системами и т.д.

А может лучше десериализовать XML в класс а не linq2xml юзать
Ну смотри в чем прикол, для каждого ответа будет своя модель, я заранее не знаю куда мне сериализовать.

Mikhail
26.04.2017
20:30:44
Ууу

Тырпрайзззз

Google
Mikhail
26.04.2017
20:31:06
И документации нет, и вообще ничего нет

viktor
26.04.2017
20:31:27
ну в смысле документации.

мне предоставили Api, с описанием как вызывать и что я получу в ответ.

Mikhail
26.04.2017
20:31:51
Или ты про то что не знаешь в юриков или в фл

viktor
26.04.2017
20:31:54
этим и руководствуюсь

да, не знаю будет это физик, юрик иил эрор

Mikhail
26.04.2017
20:32:59
Ну получай тип так как ты выше писал

А дальше десериализуй

viktor
26.04.2017
20:33:15
Да, я так и хочу

Но вот вопрос, как сделать это красиво?

чтоб не наткнуться на нал референс эксепшн мне нужно будет написать под каждой нодой If-else

А я типо не хочу веретина говноконстукций.

Mikhail
26.04.2017
20:36:20
чтоб не наткнуться на нал референс эксепшн мне нужно будет написать под каждой нодой If-else
Не совсем понял если честно. Ну пришел тебе кто-то. Получил тип и с помощью свич/кейс или иф/элс логику описал

Можно еще внутри что-то в отдельные методы вынести, чтоб почище было

Again
26.04.2017
20:45:43
Есть люди,которые начинали учиться C#

с офф.сайта майкрасофт?

Сергей
26.04.2017
20:53:44
Они теперь сениоры 999к и не сидят в этом чате

Vasily
26.04.2017
20:54:56
Когда я начинал учить c# , наиболее доступный мсдн был в оффлайн варианте

zig ? zag
26.04.2017
20:58:32
с офф.сайта майкрасофт?
Жалкие попытки в годы хренового инета, книга лучше

Сергей
26.04.2017
20:58:51
Когда учил с# по msdn

Google
Сергей
26.04.2017
20:58:54


zig ? zag
26.04.2017
20:59:07
Обидно вот ))

viktor
26.04.2017
21:10:06
Че за фото то? ничего не понял

Mikhail
26.04.2017
21:10:33
viktor
26.04.2017
21:12:06
бял

плохо когда не можешь в локальные мемчики

Mikhail
26.04.2017
21:13:14
Просто переходи на ноджыэс и линукс без вопросов

И все

viktor
26.04.2017
21:20:34
Кстати, я в C# относительно не давно, так что многих тонкостей еще не знаю, но в IT и в разработке уже давно, так что не все так плохо,Ю можно опять начинать меня любить. Посему порой буду задавать нубские вопросы

Вот один из них. К тестовым сервисам у меня тупо нет доступа, банк пока доступы не дал. Я знаю что сервис SOAP, а ответ от него будет в формате XML, пока суть да дело, я чтоб не терять время херачу модели и делаю фейковый репозиторий. Теперь к вопросу, какой тип возвращаемого обьекта лучше использовать XmlDocument или тупо захерачить object?

Axm
26.04.2017
21:24:30
Чувак, если к тебя соуп, то ты по идее можешь сгенерить все модели автоматом, а не писать их руками.

Насколько я помню, в студии есть даже кнопка, чтобы добавить сервис в референсы

viktor
26.04.2017
21:25:42
да, есть. только доступа к сервисам нет

мне дали Api, дали форматы XML. я XML конвертнул в XSD, а XSD в класс

Axm
26.04.2017
21:26:41
Соответственно, все надо десереализовавыть в классы и не париться с xmldoc

viktor
26.04.2017
21:27:17
чуть выше я уже описал почему нельзя сразу дессериализовать в класс

Я заранее не знаю какой будет ответ, их может быть 3 и все 3 разные по структуре

Axm
26.04.2017
21:27:45
У тебя один метод возвращает три разных объекта?

viktor
26.04.2017
21:28:06
да

Сергей
26.04.2017
21:28:11
Чувствую говноархитектуру

Google
viktor
26.04.2017
21:28:13
3 разных структуры Xml

Axm
26.04.2017
21:29:49
Ну там выше уже писали тоже тебе. делаешь проверку чтобы понять что за структура, сразу десериализуешь ее в объект нужного типа

viktor
26.04.2017
21:30:13
да, я так и буду делать.

Сергей
26.04.2017
21:30:34
Алсо, с хмл тоже можно сгенерить модель студией

Axm
26.04.2017
21:31:00
да, я так и буду делать.
Так в чём вопрос тогда?

viktor
26.04.2017
21:34:39
возможно я плохо сформулировал вопрос, перефразирую и задам еще рас. Как будет выглядеть архитектура сервиса. Я добавлю сервис референс на нужный мне сервис. С этим сервисом я буду работать через Репозиторий. Чтоб не терять время я сейчас напишу фейковый репозиторий, который по запросу будет возвращать нужные мне xml ответы. Так вот и вопрос. Объект какого типа возвращает соап сервис, если ответ в формате XML?

Axm
26.04.2017
21:36:11
Все зависит от того, как написан тот сервис. Если они в wsdl все типы прописали, то студия тебе сгенерит методы и их типы сама и не надо будет париться. Если нет, то наверно там будет object.

viktor
26.04.2017
21:38:59
понял, спасибо.

бля, ванклик. Спасибо добрый человек

а то я так и ходил бы как додик, до конца своих дней

Black
26.04.2017
21:55:27
Добрейший вечерочек

господа

Сходу вопрос. Имеется код вида: async Task<string> GetBarcode() { ZXing.Mobile.MobileBarcodeScanner scanner = new ZXing.Mobile.MobileBarcodeScanner(); ZXing.Result r = await scanner.Scan(); return await Task.FromResult(r.Text); }

Вернее вот метод который его вызывает: partial void ConnectWithQR(UIButton sender) { string ip = GetBarcode().ToString(); client = new TcpHelper(ip); sss.Text = client.IsConnected.ToString(); } Каким образом можно подождать выполнение GetBarcode и продолжить выполнение в ConnectWithQR только после того, как GetBarcode вернет значение?

viktor
26.04.2017
22:04:39
вот у меня есть ДатаСервайс, кторый работает с репозиторием

public void AddUserAsync(User model, Action<Exception> callback) { this.dataRepository.AddUser(model).ContinueWith((r) => callback(r.Exception)); }

вот код вызываемого метода из репозитория

public async Task AddUser(User model) { using (var context = new DataContext()) { context.Users.Add(model); await context.SaveChangesAsync(); } }

Black
26.04.2017
22:07:06
блин, я не въезжал в callback-функции, поэтому немного сложно для понимания :D

Google
Black
26.04.2017
22:09:13
Но все равно спасибо. Попробую разобраться

viktor
26.04.2017
22:09:33
ща, секунду

через пару минут отпишусь

Вернее вот метод который его вызывает: partial void ConnectWithQR(UIButton sender) { string ip = GetBarcode().ToString(); client = new TcpHelper(ip); sss.Text = client.IsConnected.ToString(); } Каким образом можно подождать выполнение GetBarcode и продолжить выполнение в ConnectWithQR только после того, как GetBarcode вернет значение?
Ключевое слово async указывает, что метод или лямбда-выражение являются асинхронными. А оператор await применяется к задаче в асинхронных методах, чтобы приостановить выполнение метода до тех пор, пока эта задача не завершится. При этом выполнение потока, в котором был вызван асинхронный метод, не прерывается.

Black
26.04.2017
22:12:08
Вот собственно вопрос: как в моем случае приостановить поток, в котором был вызван метод GetBarcode?

До того момента, пока он не вернет значение

viktor
26.04.2017
22:12:30
await

Хотя я тот еще советчик, я с многопоточностью не так много работал.

https://metanit.com/sharp/tutorial/13.3.php

вот хороший ресурс

Black
26.04.2017
22:14:42
прост await может использован только в контексте асинхронного метода, значит нужно будет еще один метод делать. Думал может кто-то более красивый вариант подскажет :)

viktor
26.04.2017
22:15:42
в смысле, зачем еще один метод?

Black
26.04.2017
22:16:17
partial void ConnectWithQR(UIButton sender) { string ip = GetBarcode().ToString(); client = new TcpHelper(ip); sss.Text = client.IsConnected.ToString(); } не сделаешь асинхронным

viktor
26.04.2017
22:16:19
у тебя же твой баркод и так асинхронный

Страница 891 из 1888

Эта группа больше не существует Эта группа больше не существует