У меня есть настраиваемая реализация JsonConverter для класса, который передается в качестве параметра остаточному методу POST.
При определенных обстоятельствах JsonConverter вызовет исключение. Когда это происходит, вызывается остальной метод POST с нулевым значением для объекта, а не 500, возвращаемым клиенту, как я ожидал. Это означает, что я не могу сообщить клиенту значимую ошибку.
Как я могу изменить или обойти это поведение?
using System.Web.Http;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace MyControllers
{
class MyConverter: JsonConverter
{
...
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
throw new Exception("You can't do that");
}
}
[JsonConverter(typeof(MyConverter))]
public class MyClass
{
...
}
public class MyController : ApiController
{
public string Post([FromBody]MyClass MyObject)
{
// Method is invoked with null value for MyObject
}
}
}