Как исправить ошибку self referencing loop detected при создании json-файла?
Необходимо создать файл json
со всеми значениями List<Control>
.
List<Control>
принимает свои значения в методе GetPictureElements()
, код метода:
public List<Control> GetPicureElements()
{
List<Control> list = new List<Control>();
foreach (Control control in pictureBoxMain.Controls)
{
list.Add(control);
}
return list;
}
Далее создан класс для хранения полученного списка:
namespace projectws
{
[Serializable]
public class EL
{
private List<Control> _el;
[DataMember]
public List<Control> El
{
get => _el;
set => _el = value;
}
public EL(List<Control> el)
{
El = el;
}
}
}
Ошибка "Self referencing loop detected for property 'Owner' with type 'System.Windows.Forms.Label'. Path 'El[0].AccessibilityObject'." возникает в коде создания json
файла:
private void buttonSaveVersion_Click(object sender, EventArgs e)
{
var el = new EL(GetPicureElements());
string json = JsonConvert.SerializeObject(el); //ошибка тут
System.IO.File.WriteAllText("test.json", json);
}
Примечание: List<Control>
имеет некоторое нестатичное количество элементов Label
, добавляемых пользователем в PictureBox
, соответсвенно ошибку выдаёт первый ([0]) полученный из списка Label
Источник: Stack Overflow на русском