У меня есть несколько моделей с общим интерфейсом, это выглядит как
public interface IRequest {
public string RequestId { get; set; }
}
Пример модели, которая реализует это выглядит как
public class CatRequest : IRequest {
public string RequestId { get; set; }
public string Name { get; set; }
У меня есть CatController
это выглядит как
public class CatController: ControllerBase {
[HttpPost]
public IActionResult AddCat([FromBody] cat) {
// call database and add cat to db
}
}
Хорошо зная, что некоторые вещи могут go ошибаться в работе базы данных, у меня есть глобальный фильтр исключений, который работает и выглядит как
public void OnException(ExceptionContext context) {
// create a proper error response message
var error = new ErrorResponse() {
ResponseCode = 400,
RequestId = 2, // HERE IS THE SPOT, I WANT TO READ RequestId from the RequestBody or Model without re-reading the request
// The solution below works, but only when it is a custom exception where I had previously manually added the Data entry
// RequestId = context.Exception.Data["RequestId"]?.ToString()
};
context.Result = new JsonResult(error);
}
Может Я получаю лучшую реализацию?
Спасибо.