主页 > 知识库 > C#反射(Reflection)对类的属性get或set值实现思路

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)

标签:朔州 洛阳 朝阳 百色 台州 新乡 喀什 周口

巨人网络通讯声明:本文标题《C#反射(Reflection)对类的属性get或set值实现思路》,本文关键词  反射,Reflection,对,类,的,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《C#反射(Reflection)对类的属性get或set值实现思路》相关的同类信息!
  • 本页收集关于C#反射(Reflection)对类的属性get或set值实现思路的相关信息资讯供网民参考!
  • 推荐文章