Почему когда я хочу сериализовать в JSON какой нибудь контрол, то вылазит рекурсия?
JavaScriptSerializer serializer = new JavaScriptSerializer();
string json = serializer.Serialize(label1);
Ответ
Потому что у контрола есть ссылка на родительский контрол, а у того список ссылок на детей - круг замкнулся.
Можно написать свою обертку, у которой только те свойства, которые Вы хотите сохранить.
public class ControlWrapper
{
private Control fControl;
public ControlWrapper(Control aControl)
{
fControl = aControl;
}
public int Width
{
get { return fControl.Width; }
}
...
}
JavaScriptSerializer serializer = new JavaScriptSerializer();
string json = serializer.Serialize(new ControlWrapper(label1));
Комментариев нет:
Отправить комментарий