У меня есть API, в котором я получаю объект пользовательского класса
[HttpPost("[action]")]
public ResultSet AddApplication([FromBody] Application model)
{
// Code Here
}
Приложение является пользовательским классом и имеет около 64 свойств.
Теперь вместо объекта Application я хочу получить его как
public ResultSet AddApplication([FromBody] object model)
Прежде чем продолжить, я хочу проверить, есть ли 64 ключа
«объектная модель» или нет
Я могу сделать это с отражением в классе
Type T = typeof(LoanApplication);
PropertyInfo[] P = T.GetProperties();
Но как проверить ключи в объекте Type?
Я хочу что-то вроде
[HttpPost("[action]")]
public ResultSet AddApplication([FromBody] object model)
{
Type T = typeof(model);
PropertyInfo[] P = T.GetProperties();
}
Но здесь typeof (модель) выдает ошибку, поскольку она является переменной и не может использовать ее как тип.
Мне это нужно в случае, если источник отправляет неверные данные (меньше несоответствующего имени свойства или свойства), чем я должен быть в состоянии выяснить, что не так, сравнивая свойства My Custom Type и полученного объекта
Так есть ли способ получить ключи от объектной модели в списке (с отражением или без него) ??
Обновление 1:
[HttpPost("[action]")]
public ResultSet AddApplication([FromBody] Application model)
{
// Code Here
}
Если API получает неправильную модель, то в приведенном выше коде модель будет нулевой (при отладке), и это означает, что мы никогда не узнаем, что пошло не так, какое свойство не соответствует или отсутствует в полученном объекте
Но
[HttpPost("[action]")]
public ResultSet AddApplication([FromBody] object model)
{
}
Здесь, если модель неверна, она все равно будет получена как объект, и, получив массив или список ее свойств, я могу сравнить ее с моим пользовательским типом
Это позволяет мне получать каждую информацию о том, что пошло не так, этот ответ я хочу отправить обратно, чтобы пользователь этого API узнал, какую ошибку он совершил
Пример: -