Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json序列化程序引用处理asp.net_Asp.net_Asp.net Mvc - Fatal编程技术网

Json序列化程序引用处理asp.net

Json序列化程序引用处理asp.net,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,从数据库获取数据时,我们有很多递归和循环引用。为了处理这个问题,我们配置(默认)json序列化程序来提供对象ID和引用,例如 { "$id": "1", "Children": [ { "$id": "2", "Children": null, "Name": "Bob Smith", "Parent": { "$ref": "1" }}, { "$id": "3", "Children": null, "Name": "Suzy Smith

从数据库获取数据时,我们有很多递归和循环引用。为了处理这个问题,我们配置(默认)json序列化程序来提供对象ID和引用,例如

  {
    "$id": "1",
    "Children": 
    [
      { "$id": "2", "Children": null, "Name": "Bob Smith", "Parent": { "$ref": "1" }},
      { "$id": "3", "Children": null, "Name": "Suzy Smith", "Parent": { "$ref": "1" }}
    ],
    "Name": "John Smith",
    "Parent": null
  },
  {
    "$ref": "2"
  },
  {
    "$ref": "3"
  }
]
我的问题是当有大量请求时,$id和$ref号的行为。我们处理的流量相当可观,它们很快就会溢出

我们将其配置为

.AddJsonOptions(options =>
                {
                 options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
                 options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
                 options.SerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.Objects;
                 });

听起来您需要对代码进行性能测试?我不知道你如何期望人们知道你的代码在信息如此之少的情况下会如何执行,也许我不清楚。我问的是“$id”:“#”在达到int.max或任何id被解释为的值时的行为。它不是特定于代码的东西,而是asp.net mvc的一部分。你不需要看到任何自定义代码,如果你有知识,我提供的就足够了。很公平,祝你好运得到答案