0

问题说明:

我想验证服务器上反序列化 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

谢谢

4

0 回答 0