Мы не получаем подробных сведений о вашей проблеме, но, вероятно, это именно то, что вы описываете: цикл самоссылки или круговая цепочка ссылок.
Скажем, у вас есть переменная типа User
со свойством public UserImage Image
. Теперь, скажем, тип UserImage
имеет свойство User
, которое ссылается на пользователя.
В вашем .NET-коде это просто так. myImage.User
дает вам пользователя, myUser.Image
дает вам изображение. Но представьте, что вы хотите сериализовать myUser
(скажем, в JSON). Затем вы должны циклически перебрать все свойства User
и сериализовать , которые , рекурсивно. Сериализатор запускается так:
{ "ID": 1, "Image": { ...
теперь он должен сериализовать образ пользователя. И помните, UserImage
имеет переменную «Пользователь».
{ "ID": 1, "Image": { "Path": "image.src", "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":
поэтому мы никогда не достигнем конечного продукта, если постоянно сериализуем циклическую ссылку.