asp.net core 2.2: Как я могу запустить проверку модели для типа с помощью json конвертера? - PullRequest
0 голосов
/ 18 июня 2019

У меня есть несколько таких типов:

[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
    [HttpPost]
    public IActionResult Post([FromBody] ComplexType value)
    {
        return Ok(value.Value.Value);
    }

}

public class ComplexType
{
    public BindingTestType Value { get; set; }
}

[JsonConverter(typeof(MyConverter))]
[ModelBinder(BinderType=typeof(MyBinder))]
public class BindingTestType
{
    public string Value { get; set; }
}

public class MyBinder:IModelBinder
{
    public Task BindModelAsync(ModelBindingContext bindingContext)
    {
        bindingContext.ModelState.TryAddModelError(bindingContext.ModelName, "From Binder");
        return Task.CompletedTask;
    }
}

public class MyConverter:JsonConverter<BindingTestType>
{
    public override void WriteJson(JsonWriter writer, BindingTestType value, JsonSerializer serializer)
    {
        serializer.Serialize(writer,value.Value);
    }

    public override BindingTestType ReadJson(JsonReader reader, Type objectType, BindingTestType existingValue, bool hasExistingValue,
        JsonSerializer serializer)
    {
        return new BindingTestType{Value = "From Converter"};
    }
}

Как я могу изменить их для выполнения проверки привязки модели вместо использования конвертера JSON?

...