在写自己的控件的时候我们不可能一直只定义string,int等内置类型的属性-夜路走多了总会撞鬼的.当遇到复杂属性(自定义的类型)时,我们该如何来保存其视图状态呢.这个问题困扰了我很久...
下面我想用几个小例子表达下自己的'捉鬼'经历.
Husband
namespace Controls { using System; using System.Collections.Generic; using System.Text; using System.Web.UI; public class Husband: Control { public Wife MyWife { get { . } set { ViewState["MyWife"] = value; } } } public class Wife { private string m_Name; private int m_Age; public string Name { get { return m_Name; } set { m_Name= value; } } public int Age { get { return m_Age; } set { m_Age= value; } } } }
看见这段代码,很多朋友估计都要骂我了,为什么呢,运行下吧:发现会抛出以下异常
Type 'Controls.Wife' in Assembly 'Controls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable.
在看见这种异常后,以前我都会直接在Wife前面加上[Serializable]Attribute,加上之后的确运行成功了但是很不幸,这种方式是要挨板砖的.
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索状态估计
, string
, using
, system
, public
, value
, wife 蓝牙定位
Controls
,以便于您获取更多的相关知识。
时间: 2024-09-18 14:32:50