加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、容器安全、数据加密、云日志、云数据迁移!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

C#反射反射的属性获取或设定方法实现

发布时间:2023-06-08 06:30:11 所属栏目:语言 来源:未知
导读:   近段时间,有朋友叫Insus了解一下反射(Reflection)方面的知识,反射提供了封装程序集、模块和类型的对象(Type类型)。可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有
  近段时间,有朋友叫Insus了解一下反射(Reflection)方面的知识,反射提供了封装程序集、模块和类型的对象(Type类型)。可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性。如果代码中使用了属性,可以利用反射对它们进行访问。
 
  下面的例子,是Insus练习对一个类别的属性进行set和get值。
 
  首先写一个类,再写一个可读写的属性:
 
  代码如下:
 
  using System;
 
  using System.Collections.Generic;
 
  using System.Linq;
 
  using System.Web;
 
  /// <summary>
 
  /// Summary description for Member
 
  /// </summary>
 
  namespace Insus.NET
 
  {
 
  public class Member
 
  {
 
  private string _Name;
 
  public string Name
 
  {
 
  get
 
  {
 
  return _Name;
 
  }
 
  set
 
  {
 
  _Name = value;
 
  }
 
  }
 
  public Member()
 
  {
 
  //
 
  // TODO: Add constructor logic here
 
  //
 
  }
 
  }
 
  }
 
  Insus.NET一向是写asp.net程序,练习也是在站点进行。
 
  创建一个网页,引用两个namespace:
 
  代码如下:
 
  using Insus.NET;
 
  using System.Reflection;
 
  读写属性:
 
  代码如下:
 
  using System;
 
  using System.Collections.Generic;
 
  using System.Linq;
 
  using System.Web;
 
  using System.Web.UI;
 
  using System.Web.UI.WebControls;
 
  using Insus.NET;
 
  using System.Reflection;
 
  public partial class _Default : System.Web.UI.Page
 
  {
 
  protected void Page_Load(object sender, EventArgs e)
 
  {
 
  //实例化类
 
  Member objMember = new Member();
 
  //对属性set值
 
  PropertyInfo pi = objMember.GetType().GetProperty("Name", BindingFlags.Public | BindingFlags.Instance);
 
  if (null != pi && pi.CanWrite)
 
  {
 
  pi.SetValue(objMember, "Insus.NET", null);
 
  }
 
  //对属性get值
 
  PropertyInfo pii = objMember.GetType().GetProperty("Name", BindingFlags.Public | BindingFlags.Instance);
 
  if (null != pii && pi.CanRead)
 
  {
 
  object obj_Name = pii.GetValue(objMember, null);
 
  Response.Write(obj_Name.ToString());
 
  }
 
  }
 
  }

 

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章