我有一个像这样定义的MVC Core API:
public async Task<ResponseInfo> ExecuteRequestInfoAsync([FromBody]RequestInfo value)
RequestInfo类有许多属性。我完全希望在对象被反序列化时访问所有属性的setter;但是,我在调试器中看到的是所有的getter都被访问了。对我来说这是一个真正的问题。对于作为问题根源的属性,我甚至将它标记为Newtonsoft.Json.JsonIgnore,而不是在这种情况下应该重要,但我正在尝试任何事情。为什么在反序列化输入类时会访问getter以及如何阻止它?谢谢。
编辑:
因此,似乎DefaultModelBinder已被Core中的ComplexTypeModelBinder替换。
我认为这是导致我麻烦的一线:
propertyModel = property.PropertyGetter(bindingContext.Model);
这一步有什么好处?有没有办法标记要忽略的属性?
答案 0 :(得分:0)
我找不到让MVC停止访问所有getter的好方法,所以我决心更改我方法的签名。
public async Task<ResponseInfo> ExecuteRequestInfoAsync(string serializedJSONOfParameter)
然后,我自己在代码中执行对象的反序列化。