Я хочу добавить некоторые новые функции в мой System.Web.UI.WebControls.Treeview.Tag
, недоступный в System.Web.UI.WebControls.Treenode
. Поэтому я расширяю функциональность Treenode, настраивая его. Но когда я использую свойство .Tag
в своем коде, я получаю
System.Runtime.Serialization.SerializationException .
Может кто-нибудь сказать мне, как решить эту ошибку ?. Любая ссылка или подсказка будут полезны.
КОД
using System.Web.UI.WebControls;
namespace CSASPNETInheritingFromTreeNode
{
public class CustomTreeView : TreeView
{
protected override TreeNode CreateNode()
{
return new CustomTreeNode(this, false);
}
}
public class CustomTreeNode : TreeNode
{
public object Tag { get; set; }
public CustomTreeNode() : base()
{
}
public CustomTreeNode(TreeView owner, bool isRoot) : base(owner, isRoot)
{
}
protected override void LoadViewState(object state)
{
object[] arrState = state as object[];
this.Tag = arrState[0];
base.LoadViewState(arrState[1]);
}
protected override object SaveViewState()
{
object[] arrState = new object[2];
arrState[1] = base.SaveViewState();
arrState[0] = this.Tag;
return arrState;
}
}
}
Form.CS
CustomTreeNode node = new CustomTreeNode();
node.Tag = 'something I am doing'
В node.Tag выдает ошибку. Как побороть эту ошибку.