C# JSON自引用循环解释

C# JSON自引用循环解释,c#,json,asp.net-ajax,jquery,C#,Json,Asp.net Ajax,Jquery,我正在使用C#、AJAX和JSON进行一些工作,并且得到了一个自引用循环错误。我正设法使用JsonIgnore属性来解决这个问题,但我想知道是否有人能给我一个关于这里实际发生的事情的正确解释 非常感谢 Dave关于您的问题,我们没有得到太多的细节,但它可能正是您所描述的:一个自我引用循环,或者一个循环引用链 假设您有一个User类型的变量,该变量具有属性public UserImage。现在,假设类型UserImage有一个属性User,它引用回用户 在.NET代码中,就是这样myImage.U

我正在使用C#、AJAX和JSON进行一些工作,并且得到了一个自引用循环错误。我正设法使用JsonIgnore属性来解决这个问题,但我想知道是否有人能给我一个关于这里实际发生的事情的正确解释

非常感谢


Dave

关于您的问题,我们没有得到太多的细节,但它可能正是您所描述的:一个自我引用循环,或者一个循环引用链

假设您有一个
User
类型的变量,该变量具有属性
public UserImage
。现在,假设类型
UserImage
有一个属性
User
,它引用回用户

在.NET代码中,就是这样
myImage.User
为您提供用户,
myUser.Image
为您提供图像。但假设您想要序列化
myUser
(比如说,将其序列化为JSON)。然后您必须循环
User
的每个属性,并递归地序列化它们。序列化程序将以如下方式开始

{ "ID": 1, "Image": { ...
现在它必须序列化用户映像。记住
UserImage
有一个变量“User”

但是用户就是我们试图引用的同一个用户

{ "ID": 1, "Image": { "Path": "image.src", "User": { "ID": 1, "Image":
现在,我们必须序列化该用户的图像,但该图像与之前的图像相同:

{
  "ID": 1,
  "Image": {
    "Path": "image.src",
    "User": {
      "ID": 1,
      "Image": {
        "Path": "image.src",
        "User": {
          "ID": 1,
          "Image": {
            "Path": "image.src",
            "User": {
              "ID": 1,
              "Image": {
                "Path": "image.src",
                "User":

因此,如果我们不断地序列化循环引用,我们就永远不会得到最终产品。

我们没有得到关于您的问题的太多细节,但它可能正是您所描述的:一个自引用循环或循环引用链

假设您有一个
User
类型的变量,该变量具有属性
public UserImage
。现在,假设类型
UserImage
有一个属性
User
,它引用回用户

在.NET代码中,就是这样
myImage.User
为您提供用户,
myUser.Image
为您提供图像。但假设您想要序列化
myUser
(比如说,将其序列化为JSON)。然后您必须循环
User
的每个属性,并递归地序列化它们。序列化程序将以如下方式开始

{ "ID": 1, "Image": { ...
现在它必须序列化用户映像。记住
UserImage
有一个变量“User”

但是用户就是我们试图引用的同一个用户

{ "ID": 1, "Image": { "Path": "image.src", "User": { "ID": 1, "Image":
现在,我们必须序列化该用户的图像,但该图像与之前的图像相同:

{
  "ID": 1,
  "Image": {
    "Path": "image.src",
    "User": {
      "ID": 1,
      "Image": {
        "Path": "image.src",
        "User": {
          "ID": 1,
          "Image": {
            "Path": "image.src",
            "User": {
              "ID": 1,
              "Image": {
                "Path": "image.src",
                "User":

因此,如果我们不断地将循环引用序列化,我们永远不会得到最终产品。

谢谢-这正是我想要的,只是对实际情况的简单解释。非常感谢。谢谢-这正是我想要的,只是对实际发生的事情的简单解释。非常感谢。