当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > .net 里面 protected private 的变量也可以访问

ASP.NET
给Asp.Net初学者的关于继承和多态性的例子
新手入门:C++下的引用类型
初学者的福音:游戏开发新手入门指南
C/C++中利用空指针简化代码,提高效率
获取转向地址的URL的源文件(可自定义REFER)
asp.net中执行存储数据操作时数据被自动截取的一种情况
.NET中防止Access数据库下载
vs.Net2003无法打开或创建Web应用程序若干解决办法.
我今天开始正式学习.net遇到的问题
无法在Web服务器上启动调试。未将项目配置为进行调试
找不到类型或命名空间名称“Server”(是否缺少 using 指令或程序集引用?)
ASP.NET页面间的传值的几种方法
几个ASP.NET技巧
让Asp.NET的DataGrid可排序、可选择、可分页
web.config文件的中文解释
用DataReader还是DataSet?
ASP.NET中数据库操作初步
ExecuteReader(),ExecuteNonQuery(),ExecuteScalar(),ExecuteXmlReader()之间的区别
如何在DataGrid控件中实现自定义分页
ADO.NET 的最佳实践技巧

ASP.NET 中的 .net 里面 protected private 的变量也可以访问


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 198 ::
收藏到网摘: n/a

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

参考代码

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
 }.