Est-ce que quelqu'un sait comment sérialiser un contrôle personnalisé en JSON dérivé d'un autre contrôle Web? Je continue d'obtenir l'erreur que la classe de base n'est pas sérialisable. Voici le code pour la classe dérivéeComment JSON sérialiser une classe dérivée de la classe Web Control
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;
}}
Je ne fait même pas besoin de sérialisation l'un des attributs de la classe de base. J'ai juste besoin de l'id de contrôle et du titre associé sérialisé. Est-il possible de le faire lorsque le contrôle Web n'est pas sérialisable. J'ai essayé DataContractJsonSerializer et JavascriptSerializer sans succès car la classe WebControl n'est pas sérialisable.
+1 pour la recommandation de l'objet de transfert de données (DTO). – Sumo