Тип привязки asp core 2.2 - PullRequest
       29

Тип привязки asp core 2.2

0 голосов
/ 19 апреля 2019

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, который содержит эти поля и пусть по умолчанию модель связыватель делает свою работу? В конце концов, что вы получите принять этот формат и связать его самостоятельно? Я думаю, что иметь тип лучше. Вы позволяете компилятору помочь вам с вещами (рефакторинг и тд). Плюс твой код прост.

...