我编写了一个自定义服务器控件(伪代码),如下所示
public class MyCustomCtrl : WebControl
{
private Button innerCtrl; //some arbitrary object, doesn't matter
...
protected override void CreateChildControls()
{
//initialization etc, as standard...
}
}
现在,我必须复制这个自定义服务器控件。基本上,它是由程序员在aspx或ascx代码上声明性地添加的。在运行时,必须创建此控件的多个实例,然后将其添加到某个父控件中。然而,这是在父控件的上下文中处理的。
不管怎样,解释使用背景有点困难。然而,我的主要问题是使用“克隆”是否安全,尤其是调用
MemberwiseClone()
关于网络控制?到目前为止,我所做的是添加一个类似的方法
public class MyCustomCtrl : WebControl
{
...
public object Clone(){
MyCustomCtrl clone = MemberwiseClone() as MyCustomCtrl;
clone.InnerCtrl = this.innerCtrl.Clone() as Button; //or whatever type
return clone;
}
}