问题说明:
我想验证服务器上反序列化 JSON 对象中的类之间的关系。例如:声称的外键在 A 类和 B 类之间是正确的。
A:
{
"Id": "z",
"B": [
{
"Id": "x",
},
{
"Id": "y",
}
]
}
在这种情况下,我想弄清楚 ID 为 "Z" 的 A 类是否与 ID 为 "x" 和 "y" 的 B 类有有效的关系,这可能会越来越深......所以 B 可以有几个内部关系,必须在 B 完全反序列化后检查
我不想编写递归函数,因为我认为它对服务器端程序有很多性能损失。
一些属性检查可以很容易地使用Newtonsoft.Json.Serialization.IValueProvider
,但问题是,我无法确定一个类何时被完全反序列化(所有必需的属性在最后一次public void SetValue (object target, object value)
调用中都有自己的值,其中一些可能什么都没有,这个特性每个班级都不一样)
服务器的这一部分已经完全用反射和完全通用的方式编写。
所以问题是:我怎样才能知道这SetValue
是对该对象的最后一次 SetValue 调用?(例如对象键总是最后一次调用或类似的东西)
或者我之前检查这种关系的任何其他方式IdentityDbContext.Update
谢谢