API-интерфейс ядра asp становится входным объектом со следующей структурой json:
{
"id": 1,
"zoneDate": {
"zone": "Paris/France",
"dateTime": "2019-04-02T00:00:00"
}
}
Я хочу преобразовать этот объект в следующую модель:
public class Model
{
public int Id { get; set; }
public DateTime DateTime { get; set; }
}
У меня есть служба, которая знает, как преобразовать сложный объект json zoneDate
для создания .Net DateTime
со смещением.
Мне нужно, чтобы API выполнял преобразование автоматически (в привязке модели) всякий раз, когда он видит DateTime
в модели, которая помечена некоторым пользовательским атрибутом (или встроенным, если таковой имеется). Есть идеи сделать это элегантно? Есть ли что-то вроде TypeConverter
, которое может работать с одним свойством simple type
и может принимать parameter injected through constructor
? Любая помощь очень ценится!
EDIT:
Мне нужно связывание на уровне свойств, а не на уровне модели. Я имею в виду, что если я использую связыватель модели, то мне нужно создать его для КАЖДОЙ и КАЖДОЙ новой модели, которая имеет DateTime
реквизит, который должен быть создан из ZoneDate
json. Это не то, что я хочу. Я хочу трактовать ZoneDate
как простой тип, когда я конвертирую его в DateTime
, который имеет атрибут или какое-то соглашение об именах
UPDATE:
Наконец, совет @jpgrassi был реализован.
Вместо того, чтобы писать эти связующие, это просто скрывает сложность ...
почему бы не ввести тип ZoneDate, который содержит эти поля и пусть
по умолчанию модель связыватель делает свою работу? В конце концов, что вы получите
принять этот формат и связать его самостоятельно? Я думаю, что иметь
тип лучше. Вы позволяете компилятору помочь вам с вещами
(рефакторинг и тд). Плюс твой код прост.