Я развиваюсь для .NET Core, поэтому я использую нестабильную последнюю альфа-версию Noda Time (2.0.0-alpha20160729). Данные обрабатываются с помощью JSON.Пользовательский конвертер JSON для Noda Time
Я буду принимать ввод пользователя для даты рождения, и я хочу поддерживать несколько форматов ввода, если пользователь не может следовать указаниям получает путаницу. Например, я хочу принять и MM-dd-yyyy
и M/d/yy
, и другие.
serialization docs конкретно указывается следующее:
Пользовательские преобразователи могут быть легко созданы с использованием шаблонов NodaPatternConverter.
Я не могу для жизни меня выяснить, как это сделать. Из того, что я понимаю, мне нужно будет реализовать как NodaPatternConverter<LocalDate>
себя, IPattern<LocalDate>
для синтаксического анализа, так и Action<T>
для проверки.
Я начал писать IPattern.Parse<LocalDate>
, но эта функция возвращает ParseResult<LocalDate>
, которая, по-видимому, недоступна. Он не может быть создан или использован каким-либо образом, который я нашел. Поэтому я застрял.
Как правильно создать пользовательский конвертер JSON для Noda Time?
А, хорошо, я проверю это и отчитаю. Я думал, что конвертер будет лучшим местом для обработки валидации _and_ преобразования, если он будет успешным, вместо того, чтобы иметь как строку, так и «LocalDate» на моей модели и заполнять последнюю из первой. (Это беспорядок в Json.net тоже, пытаясь использовать один для сериализации, а другой для десериализации. Но я отвлекаюсь.) – vaindil