Size: a a a

Microsoft Developer Community Chat

2018 July 12

AI

Arthur Irgashev in Microsoft Developer Community Chat
суть в чём: хочу сделать RequestMessage для аспа, в котором будет несколько общих филдов + метод GetModel<T>. В кастомном моделбиндере извлекаются общие филды, а оставшиеся сериализуются и сохраняются в приватный филд. Дальше этот метод можно прокинуть в разные обработчики, которые получат необходиую модель, вызвав GetModel<T> с нужным дженерик-тайпом
источник

AI

Arthur Irgashev in Microsoft Developer Community Chat
и вот столкнулся с тем, что в форме могут быть Name.Subname.SubSubName = value. И вот эти SubName нужно привести к виду одного сериализованного обжекта, чтобы в дальнейшем можно было десериализовать в нужный тип
источник

AI

Arthur Irgashev in Microsoft Developer Community Chat
для особо фанатичных людей можно ещё и рефлекцией генерировать всё, но это прям совсем нехорошо ))
источник

RB

Roman Buldygin in Microsoft Developer Community Chat
Чёт сложна
источник

AI

Arthur Irgashev in Microsoft Developer Community Chat
да вроде не оч )
источник

RB

Roman Buldygin in Microsoft Developer Community Chat
Проблема с сериализацией вложенного в T поля или как?
источник

AI

Arthur Irgashev in Microsoft Developer Community Chat
есть несколько однотипных методов, в которых ну прям 99,9% дублирующегося кода. но входные данные чем-то да отличаются. хотелось бы всё подогнать под одну точку входа, но опять же, городить сложную вью-модель не хочу, т.к. явно перебор будет
источник

AI

Arthur Irgashev in Microsoft Developer Community Chat
а вот этот вариант показался красивым
источник

AI

Arthur Irgashev in Microsoft Developer Community Chat
и тогда можно было бы делать один метод с такой моделью, внутри метода вызывать нужную стратегию, например, и уже в самой стратегии получать конкретную модель
источник

AI

Arthur Irgashev in Microsoft Developer Community Chat
Roman Buldygin
Проблема с сериализацией вложенного в T поля или как?
ну суть в чём: приходят данные из формы, вида
name: value
customer.email : value
customer.card : value
customer.phone : value
customer.home.field_n: value


если сериализовывать в таком виде, то десериализация пройдёт неудачно, соотв. нужно перегнать в вид аля
name: value, 
customer: {
       email: value,
       phone: value,
       home: {
           field_n: value
       }
}
источник

AI

Arthur Irgashev in Microsoft Developer Community Chat
вот думаю, как наименее затратным образом это сделать. генерить валидный жсон вручную что ли ?
источник

RB

Roman Buldygin in Microsoft Developer Community Chat
Странно. Я думал, что у тебя данные формы смогут нормально смапиться в подходящую модельку силами asp.net
источник

AI

Arthur Irgashev in Microsoft Developer Community Chat
да, но суть в том, что до входа в нужную стратегию я не знаю точно, какая модель мне нужна
источник

RB

Roman Buldygin in Microsoft Developer Community Chat
Они что, в один и тот же метод контроллера будут прилетать?
источник

AI

Arthur Irgashev in Microsoft Developer Community Chat
+
источник

RB

Roman Buldygin in Microsoft Developer Community Chat
-____-
источник

AI

Arthur Irgashev in Microsoft Developer Community Chat
есть много методов (точное кол-во не назову, около 10), которые выполняют почти одно и то же, с небольшими отличиями. но для каждого из них нужна разная модель (она на 80% похожа для всех методов)
источник

AI

Arthur Irgashev in Microsoft Developer Community Chat
и вот как раз была идея завести фабрику или чото такое, вызывать нужный обработчик и передавать туда этот враппер модели
источник

AI

Arthur Irgashev in Microsoft Developer Community Chat
сделать что-то вроде общего энтрипоинта для всех методов
источник

RB

Roman Buldygin in Microsoft Developer Community Chat
Врубить наследование на полную катушку видно не выходит? Или извратиться с кучей интерфейсов?
источник