.net 里面 protected private 的变量也可以访问
发表时间:2024-02-13 来源:明辉站整理相关软件相关文章人气:
[摘要]通过 原数据可以访问,我是访问后,才发现自己怎么都操作私有字段了呢参考代码public class L3Data : System.ComponentModel.Component private System.ComponentModel.Container components = nul...
通过 原数据可以访问,我是访问后,才发现自己怎么都操作私有字段了呢
参考代码
public class L3Data : System.ComponentModel.Component
{
private System.ComponentModel.Container components = null;
private Page _page;
private ArrayList LiteralList = new ArrayList();
public L3Data(System.ComponentModel.IContainer container)
{
container.Add(this);
InitializeComponent();
}
public L3Data()
{
InitializeComponent();
}
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region 组件设计器生成的代码
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
}
#endregion
#region Property
public Page Page
{
get{return this._page;}
set
{
this._page = value;
Type type = _page.GetType();
type = type.BaseType;
System.Web.UI.WebControls.Literal literal = new Literal();
System.Reflection.FieldInfo[] fields = type.GetFields(BindingFlags.NonPublic (BindingFlags.Static BindingFlags.Instance));
foreach(System.Reflection.FieldInfo field in fields)
{
if(field.FieldType.Equals(literal.GetType()))
this.LiteralList.Add(field);
}
int count =0;
foreach(FieldInfo field in this.LiteralList)
{
count++;
object obj = field.GetValue(this.Page);
literal = (Literal)obj;
if(literal.Text.Equals("wx"))
literal.Text ="I can see you";
else
{
literal.Text="wangxing"+count.ToString();
}
}
}
}
#endregion
}.