Кто-нибудь знает, как сериализовать пользовательский элемент управления в JSON, полученный из другого веб-элемента управления. Я продолжаю получать ошибку, что базовый класс не сериализуем. Вот код для производного класса
public class BaseWidget : CompositeControl
{
protected Label _lblHeader;
protected Button _editButton;
protected HtmlInputHidden _idField;
/// <summary>
/// The Unique identified that identifies this widget
/// </summary>
public int ControlID
{
get
{
EnsureChildControls();
int i = -1;
int.TryParse(_idField.Value, out i);
return i;
}
set
{
EnsureChildControls();
_idField.Value = value.ToString();
}
}
/// <summary>
/// Allow the user to edit the widget
/// </summary>
public bool AllowEdit
{
get;
set;
}
public string Title
{
get
{
EnsureChildControls();
return _lblHeader.Text;
}
set
{
EnsureChildControls();
_lblHeader.Text = value;
}
}
public string CallbackFunction
{
get;
set;
}
protected Panel Header
{
get;
set;
}
/// <summary>
/// The Main Control of the widget
/// </summary>
protected Panel Content
{
get;
set;
}
protected Panel Edit
{
get;
set;
}
protected Panel Body
{
get;
set;
}
/// <summary>
/// The tag that the control is associated with
/// </summary>
protected override HtmlTextWriterTag TagKey
{
get
{
return HtmlTextWriterTag.Li;
}
}
public BaseWidget()
{
this.ControlID = 0;
}}
Мне даже не нужно сериализовать какие-либо атрибуты в базовом классе. Мне просто нужен контрольный идентификатор и заголовок, связанный с сериализацией. Есть ли способ сделать это, когда веб-контроль не сериализуем. Я безуспешно попробовал DataContractJsonSerializer и JavascriptSerializer, потому что класс WebControl не сериализуем.