.net 里面 protected private 的变量也可以访问(新发现)。

王朝c#·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

通过 原数据可以访问,我是访问后,才发现自己怎么都操作私有字段了呢

参考代码

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

}.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航