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

ASP.NET
也说C#实现对Word文件读写
字符串处理:中英文混排固定长度截取问题
用asp.net还原与恢复sqlserver数据库
C#加密路径里的参数,保护参数隐私安全!
ASP.NET实现网络空间管理
Asp.net中处理共享Session的问题
ASP.NET之精通弹出窗口
禁止在TextBox中输入
将一个图片以二进制值的形式存入Xml文件中
vs.net 2003在FAT32格式的系统中安装
.Net FrameWork SDK文档的例子演示
改善C#中socket通信机客户端程序的健壮性
C#中的域(field)和属性(property)
将ASP.net中的Table中的数据导入到Execl
C#中的数组和C++中数组的区别
C#中的checked、unchecked操作符
asp.net 的 Request对象
C#中方法参数的四种类型
C#中的“装箱”与“拆箱”
C#中的代理(delegate)

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 211 ::
收藏到网摘: 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
 }.