手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >C#反射(Reflection)对类的属性get或set值实现思路
C#反射(Reflection)对类的属性get或set值实现思路
摘要:近段时间,有朋友叫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());

}

}

}

【C#反射(Reflection)对类的属性get或set值实现思路】相关文章:

asp.net Execl的添加,更新操作实现代码

ASP.net(c#)用类的思想实现插入数据到ACCESS例子

asp.net gridview 72般绝技第1/2页

asp.net简化接收参数值的函数

TreeView创建IHierarchicalDataSource类型的数据源实现

Community Server专题一:概述Community Server

用 Asp.Net 建立一个在线 RSS 新闻聚合器的方法

.net使用自定义类属性实例

初学者的福音:游戏开发新手入门指南

ASP.NET(C#)将数据导出到Word或Excel

精品推荐
分类导航