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

Страница 1228 из 1888
Летучая
12.06.2017
15:26:36


Andrey
12.06.2017
15:28:15
Шо не таг?

Вот у меня похожий код для парсинга подкаст фида, так как там ещё так каша с дублированием полей.

Google
Летучая
12.06.2017
15:30:40
Есть же JsonProperty Лёгким движением руки коричневый код становится менее коричневым https://github.com/Worldbeater/VkLibrary/blob/master/VkLibrary.Core/Types/Groups/Group.cs

Влад
12.06.2017
15:32:16
[IOException: The handle is invalid.] mscorlib_ni!System.IO.__Error.WinIOError(Int32, System.String)+0xc6a9f2 mscorlib_ni!System.IO.__ConsoleStream.Read(Byte[], Int32, Int32)+0xad mscorlib_ni!System.IO.StreamReader.ReadBuffer()+0x33 mscorlib_ni!System.IO.StreamReader.Read()+0x2a mscorlib_ni!System.IO.TextReader+SyncTextReader.Read()+0x19 mscorlib_ni!System.Console.Read()+0x14 DotaTextGameBot!DotaTextGame.Program.Main()+0x25

Закинул приложение на апхарбор.

Daniel
12.06.2017
15:32:42
ребят

Влад
12.06.2017
15:32:47
ему не нрав нрав ввод, что ли?

Daniel
12.06.2017
15:32:53
скиньте чатик хабра если есть у кого

Летучая
12.06.2017
15:33:50
Ты чего

Из 90-ых прилетел?

Andrey
12.06.2017
15:34:40
Для всех
Эм, как ты парсить по условию будешь? К примеру есть 2 поля в структуре. Если первое поле "краше", то кладём в пропертю его, а если другое, то его.

Летучая
12.06.2017
15:34:51
У вк такого нет

Google
Andrey
12.06.2017
15:35:03
Для всех

Летучая
12.06.2017
15:35:05
У JsonProperty есть JsonConverter

Andrey
12.06.2017
15:35:15
Как ты Id парсить будешь?

Летучая
12.06.2017
15:35:43
[JsonProperty("id")] public int Id { get; set; }

Не понимаю твоей претензии.

Andrey
12.06.2017
15:36:03
[JsonProperty("id")] public int Id { get; set; }
Посмотри как там парсится.

Летучая
12.06.2017
15:36:09
Где?

Andrey
12.06.2017
15:36:13


И перенеси это на аннотации.

Вот такая красота только для очень тупых структур подходит, к сожалению.

Andrey
12.06.2017
15:38:09
ты красотой JsonProperty называешь?
Это всё же приятнее выглядит, чем такой перенос в проперти.

Летучая
12.06.2017
15:38:12
Andrey
12.06.2017
15:38:29
Ilya
12.06.2017
15:38:36
а можешь привести пример "не тупой структуры" вот этого айдишника?

Летучая
12.06.2017
15:38:36
На скрине выше автор сидит на двух стульях

Не знаю зачем правда

Мб это такая попытка поддержать легаси

Google
Ilya
12.06.2017
15:39:00
да

Ilya
12.06.2017
15:39:10
ты просто говоришь про тупые структуры

Andrey
12.06.2017
15:39:54
Спокойно: посмотри фиды подкастов. Там есть теги для тунца, а есть для остальных клиентов. В идеале надо как-то понимать, что будет лучше для пользователя и выбирать именно это.

Ilya
12.06.2017
15:41:05
сделай либо в разные модели либо в одной модели опиши все типы тегов

Andrey
12.06.2017
15:41:59
Можно и так, только смысла нет в этом. Тебе всё равно придётся писать код, подобный этому.



Roman
12.06.2017
15:42:14
Его придется писать меньше

Andrey
12.06.2017
15:42:16
Так как тебе всё равно как-то надо выбирать нужное поле.

Летучая
12.06.2017
15:42:38
Вообще если такие проблемы

То можно заморочиться и написать свой атрибут

Летучая
12.06.2017
15:42:49
И свой конвертер

Roman
12.06.2017
15:42:54
Если все "сложные" поля вынесены и заполняются вручную, простые можно автоматически парсить аттрибутами

А если делать вот такое ручное заполнение общим подходом - это увеличивает вероятность тупой ошибки

Усложняет поддержку, расширение ну и так далее

Летучая
12.06.2017
15:43:43
Чтобы писать что-то типа [JsonProperty("one, two, three")] public string OneTwoThree { get; set; }

Согласен с Романом, я пытался так жсон парсить

Andrey
12.06.2017
15:44:22
Ок, теперь нам надо в итоге получить одну модель, которая является объединением исходных по некоторой логике. И нам всё равно придётся писать копирование простых пропертей.

Летучая
12.06.2017
15:44:24
Вообще не понравилось и запутался

Google
Roman
12.06.2017
15:45:26
С чего вдруг? Если ты вынес сложные поля тем или иным образом - не нужно. Боже, да можно просто после автоматического парсинга руками заполнить id, и то удобнее

Friedrich
12.06.2017
15:46:17
Самое главное — что это не нужно. Можно вообще заставить машину генерить вот эти названия с подчёркиванием, если сунуть в сериализатор правильный форматтер. И тогда даже атрибуты будут не нужны, даже небо не нужно.

Машина полностью заменит человека!

Влад
12.06.2017
15:46:42
Есть ещё какой-то вариант держать консоль включенной, не считая Console.Read()/ReadKey()/ReadLine()?

Roman
12.06.2017
15:46:45
Да, а так еще лучше

Влад
12.06.2017
15:46:58
А то апхарбору не нрав IO.

Andrey
12.06.2017
15:46:58
С чего вдруг? Если ты вынес сложные поля тем или иным образом - не нужно. Боже, да можно просто после автоматического парсинга руками заполнить id, и то удобнее
Что значит вынес? Вот у меня есть сложная xml, над которой надо колдовать. В итоге надо получить итоговую модель. Даже если описать все возможные простые модели, то над ними всё равно надо будет писать логику.

Friedrich
12.06.2017
15:47:07
Есть ещё какой-то вариант держать консоль включенной, не считая Console.Read()/ReadKey()/ReadLine()?
Запускать прогу в студии по Ctrl-F5? Написать сервис / демона?

Admin
ERROR: S client not available

Влад
12.06.2017
15:47:34
Там я через контрол ф5 не запущу.

Влад
12.06.2017
15:48:08
Message Terminated with exitcode -2147467259 Exceptions [IOException: The handle is invalid.] mscorlib_ni!System.IO.__Error.WinIOError(Int32, System.String)+0xc6a9f2 mscorlib_ni!System.IO.__ConsoleStream.Read(Byte[], Int32, Int32)+0xad mscorlib_ni!System.IO.StreamReader.ReadBuffer()+0x33 mscorlib_ni!System.IO.StreamReader.ReadLine()+0x13f mscorlib_ni!System.IO.TextReader+SyncTextReader.ReadLine()+0x19 mscorlib_ni!System.Console.ReadLine()+0x14 DotaTextGameBot!DotaTextGame.Program.Main()+0x25

На маке чтоли? ?
на аппхарборе, эт тип хостинг.

Летучая
12.06.2017
15:49:16
и в метод отдельный

Google
Friedrich
12.06.2017
15:49:27
А как максимум — вообще откажись от этой привычки везде втыкать Console.ReadLine.

Andrey
12.06.2017
15:49:30
А потом выкинь и прикрути логгер)

Влад
12.06.2017
15:49:45


А эт чё тогда?

Andrey
12.06.2017
15:50:00
Ты на сервере своём?

Friedrich
12.06.2017
15:50:01
А потом выкинь и прикрути логгер)
Логгер решает другую задачу, бро.

Ну я ж тебе сказал что сделать :(

Влад
12.06.2017
15:50:27
Та ща)

Andrey
12.06.2017
15:50:30
Логгер решает другую задачу, бро.
Ммм, не так прочитал метод, виноват.

Friedrich
12.06.2017
15:51:13
@BuradoSenpai, постой. Больше расскажи про свою прогу. Она у тебя что, вся асинхронная какая-то?

Влад
12.06.2017
15:51:34
+

Friedrich
12.06.2017
15:51:41
Если просто так тупо убрать ReadLine — то она будет мгновенно закрываться?

Влад
12.06.2017
15:51:45
бот для телеграма игровой.

не мгновенно, но через пару сек.

Friedrich
12.06.2017
15:52:17
А вот этот DoWork() у тебя не возвращает таск какой-нибудь, которого можно было бы дождаться?

Влад
12.06.2017
15:52:35
нет, но это хорошая идея)

Спасибо)

Friedrich
12.06.2017
15:53:40
Если тебе срочно затычка нужна — вешай туда Thread.Sleep(Timeout.Infinite). Но это костыль, идея с таском куда полущ.

Влад
12.06.2017
15:54:04
Я сделал Wait();

Friedrich
12.06.2017
15:54:14
Оке.

Влад
12.06.2017
15:54:29
Там и так бесконечный цикл, хотя почему-то закрывалось.

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

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