• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    C#反射(Reflection)对类的属性get或set值实现思路
    近段时间,有朋友叫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());
    }
    }
    }
    您可能感兴趣的文章:
    • C# 反射(Reflection)的用处分析
    • 关于C#反射 你需要知道的
    • C#基于Linq和反射实现数据持久化框架Xml4DB详解
    • 详解C# 反射(Reflection)
    上一篇:用户控件(ASCX)向网页(ASPX)传值使用反射实现
    下一篇:asp.net根据日期算出天数的小例子
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    C#反射(Reflection)对类的属性get或set值实现思路 反射,Reflection,对,类,的,