ASP.NET CORE WEB API: [FROMBODY] Проверка не работает для [обязательных] свойствC#

Место общения программистов C#
Anonymous
 ASP.NET CORE WEB API: [FROMBODY] Проверка не работает для [обязательных] свойств

Сообщение Anonymous »

У меня есть следующая конечная точка ASP.net Core Web API. Эта конечная точка автоматически генерируется через рабочий процесс, в котором используется определение типов, которое затем преобразуется в OpenAPI, а затем на сервер ASP.Net Core Web API с использованием CLI OpenAPI Generator. < /P>

Код: Выделить всё

// Written by hand
public override async Task MyMethod (
[FromRoute(Name = "someString"), Required] string someString,
[FromRoute(Name = "someInt"), Required] int someInt,
[FromBody] MyMethodRequest myRequest)
< /code>
MyMethodRequest
состоит только из объекта одного класса:

Код: Выделить всё

// Auto-generated
[Required]
[DataMember(Name="MyObject", EmitDefaultValue=false)]
public MyClass MyObject { get; set; }
< /code>
MyClass
имеет несколько свойств. Один из них-следующее: < /p>

Код: Выделить всё

// Auto-generated
[DataContract]
public partial class MyClass: IEquatable
{
[Required]
[DataMember(Name="someState", EmitDefaultValue=true)]
public int SomeState { get; set; }
}
< /code>
If I call the MyMethod
конечная точка API через http, я ожидаю, что она вернет результат Badrequest , если я оставлю требуемое какое -то свойство из запроса json.
Однако метод выполняется нормально, а SomeState инициализируется со значением по умолчанию 0. ModelState.isvalid - true . Объект состояния упоминает Somestring и expectint , но не атрибут MyRequest . Я даже не уверен, что MyRequest вообще проверяется.
Почему это? Я неправильно понимаю, как работает автоматическая проверка запросов в этом контексте? Вот почему я использую переопределение и необязательное имя . Атрибуты [требуется] из генератора.
Заранее спасибо за любую помощь.

Подробнее здесь: https://stackoverflow.com/questions/794 ... ed-propert

Вернуться в «C#»