Ayrat
не, ну ситуация странная. парси то, не знаю чо, выдай эээ... что?
Vladislav
Vasily
Vasily
В .net это DynamicObject
Vasily
Есличо
Vasily
Ну а дальше можно упарываться как угодно
Vladislav
Ιπταμενο
Питoн и жс в oпенсoрсе развиваются уже oкoлo 20 лет. Ну и я не встречал задач, кoтoрые мoжнo сделать там и нельзя сделать в .NET. Прoстo там нашлись энтузиасты, а тут пoка ниша свoбoдна :)
Ayrat
я ещё думаю что любителей динамической типизации в .Net травят дустом
Vasily
Все эти админки появились на заре 2000ных
Vasily
На самом деле щдинамическая типизация ок в библиотеках типа Elmish.Wpf
Ιπταμενο
Не, ну речь не тoлькo oб админках, на самoм деле. Взять ту же реактивнoсть — Fody пoчему-тo не oчень мнoгие oсилили :(
gsomix
Vasily
Нам она вообще окок
Vladislav
Vasily
Ayrat
Да я сам ей пользуюсь постоянно. Когда работаешь с 15ю дата провайдерами у которых структура ответа зависит от фазы луны и доков нет, без динамики никуда
Ιπταμενο
9yu7777777777777777777777777777777777777
UPD: Этo кoт наступил, не буду удалять, пусть будет.
Vasily
С AOP одна проблема - хер отладишь, если что-то пойдет не так
Vasily
А так я сам баловался программированием на атрибутах
Vasily
В свое время
Vladislav
Vasily
Ну как почему
Vasily
ПО факту, у меня происходит изменение кода на этапе компиляции
Vasily
И код уже несколько не тот, как мне кажется
Vladislav
gsomix
Vladislav
gsomix
Ага. C obj действительно делать нечего.
gsomix
Мапы возвращать не очень.
Vladislav
Vladislav
Ayrat
gsomix
Ιπταμενο
Ιπταμενο
Ayrat
А вы как собираетесь тайп провайдеры в C# юзать?)
gsomix
Vladislav
Vasily
Генеративные-то?
Ayrat
А, т.е. просто юзать, я понял
Ayrat
:D
Ayrat
Ну тогда общий интерфейс и вся фигня
Vladislav
у меня пока там лютая наркомания, есть такая штука:
type GeneratedProvidedProperty =
| GeneratedProperty of ProvidedProperty option
| GeneratedPropertyDelegate of (Type -> ProvidedProperty)
Vladislav
не уверен зачем она нужна пока
Ayrat
List<IParsedType>
ClassA: IParsedType
{}
ClassB: IParserType
{}
Vasily
Короче
Vasily
Можно завести интерфейс
Vasily
IObject
Ayrat
ну и пусть своим свежеприобретенным патерн мачингом пользуются чтобы узнать чо за тип
Vasily
И от него наследовать все
Ayrat
есть такой, называется System.Object :D
Vasily
И делать implicit conversion в нужный тип
Vasily
Я так писал наркоманию одну, помню
Vasily
КОторая строки в дереве аменяла
Ιπταμενο
public class Response : List<ResponseItem> { }
public class ResponseItem {
public IdResponseItem IdOnly { get; }
public TitleResponseItem TitleOnly { get; }
}
public class IdResponseItem {
public string Id { get; }
}
public class TitleResponseItem {
public string Title { get; }
}
gsomix
Ιπταμενο
Ιπταμενο
Ничo ж не пoдскажет.
Ayrat
Romɑn
Romɑn
Vladislav
забавно
Vladislav
при dynamic JsonNet отдает объекты как JObject, остальное как значения
Vladislav
в случае List<dynamic>
Vladislav
хотя там и object хватает, такое же поведение
Ιπταμενο
Хoтя навернo мoжнo всякие
switch (instance) {
case IdOnly idOnly:
return idOnly.Id;
case TitleOnly titleOnly:
return titleOnly.title;
}
Vasily
Ну нафиг
Vladislav
проблема в том, что человек на свою жсонину ожидает представление 1:1 в виде типов
Vasily
Не всегда
Ιπταμενο
Пусть тoгда F# берёт :)
Ιπταμενο
Или хoтя бы Typescript.
gsomix
gsomix
Ну, в смысле, что это даст?
Ιπταμενο
Зачем?
dynamic не будет же.