佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > C#反射(Reflection)對(duì)類的屬性get或set值實(shí)現(xiàn)思路

C#反射(Reflection)對(duì)類的屬性get或set值實(shí)現(xiàn)思路

熱門標(biāo)簽:阿里云 Mysql連接數(shù)設(shè)置 服務(wù)器配置 銀行業(yè)務(wù) 科大訊飛語(yǔ)音識(shí)別系統(tǒng) 電子圍欄 Linux服務(wù)器 團(tuán)購(gòu)網(wǎng)站
近段時(shí)間,有朋友叫Insus了解一下反射(Reflection)方面的知識(shí),反射提供了封裝程序集、模塊和類型的對(duì)象(Type類型)??梢允褂梅瓷鋭?dòng)態(tài)創(chuàng)建類型的實(shí)例,將類型綁定到現(xiàn)有對(duì)象,或從現(xiàn)有對(duì)象獲取類型并調(diào)用其方法或訪問(wèn)其字段和屬性。如果代碼中使用了屬性,可以利用反射對(duì)它們進(jìn)行訪問(wèn)。
下面的例子,是Insus練習(xí)對(duì)一個(gè)類別的屬性進(jìn)行set和get值。

首先寫一個(gè)類,再寫一個(gè)可讀寫的屬性:
復(fù)制代碼 代碼如下:

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程序,練習(xí)也是在站點(diǎn)進(jìn)行。
創(chuàng)建一個(gè)網(wǎng)頁(yè),引用兩個(gè)namespace:
復(fù)制代碼 代碼如下:

using Insus.NET;
using System.Reflection;

讀寫屬性:
復(fù)制代碼 代碼如下:

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)
{
//實(shí)例化類
Member objMember = new Member();
//對(duì)屬性set值
PropertyInfo pi = objMember.GetType().GetProperty("Name", BindingFlags.Public | BindingFlags.Instance);
if (null != pi pi.CanWrite)
{
pi.SetValue(objMember, "Insus.NET", null);
}
//對(duì)屬性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)的用處分析
  • 關(guān)于C#反射 你需要知道的
  • C#基于Linq和反射實(shí)現(xiàn)數(shù)據(jù)持久化框架Xml4DB詳解
  • 詳解C# 反射(Reflection)

標(biāo)簽:衡水 衢州 蚌埠 江蘇 廣元 萍鄉(xiāng) 大理 棗莊

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《C#反射(Reflection)對(duì)類的屬性get或set值實(shí)現(xiàn)思路》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    永仁县| 洱源县| 盐亭县| 龙里县| 西充县| 海丰县| 广安市| 浦北县| 建湖县| 瑞金市| 乾安县| 肃南| 康平县| 余江县| 眉山市| 通榆县| 潮安县| 土默特左旗| 望都县| 石城县| 永兴县| 古交市| 龙口市| 昌都县| 荆门市| 呼和浩特市| 平利县| 盈江县| 鄂州市| 扎兰屯市| 满洲里市| 武宁县| 晋中市| 电白县| 张家口市| 博野县| 博湖县| 南丰县| 柘荣县| 北安市| 宁德市|