国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

使用反射依導航路徑調用對象成員方法,或返回對象子、孫屬性或字段成員

2024-07-21 02:15:53
字體:
來源:轉載
供稿:網友

///如未特別說明,本人所發表的技術文章都為原創, 任何人引用都請包含本聲明
///作者: csdn網名alias88,郵件:[email protected],qq:63343 ,歡迎加我



    /// <summary>



    ///依導航路徑調用對象成員方法,或返回對象其子、孫屬性或字段成員.



///例子:



///獲得表的第二列的名稱



///getmember(datatable1.gettype(),"columns.item.name",datatable1,1)     



///執行表的select方法,并返回可能的datarow數組



///getmember(datatable1.gettype(),"select",datatable1,"客戶編號 = 'c0001')



///取活動表單的名稱,靜態成員不需傳入obj



///getmember(typeof("system.windows.forms.form"),"activeform.name",null,null)



    /// </summary>



    /// <param name="type">獲得此類型的子孫成員</param>



    /// <param name="memberpath">子孫成員的路徑描述,以點作為分隔符</param>



    /// <param name="obj">如果成員是靜態類型,則為null</param>



    /// <param name="args">參數,注意此參數只能為memberpath最后一個成員使用</param>



    /// <returns></returns>



    public static object getmember(type type,string memberpath,object obj,object[] args)



    {



      if (memberpath==null || memberpath.trim ()=="")



        throw new argumentexception ("缺少必需的參數","memberpath");



      if (type==null )



        throw new argumentexception ("缺少必需的參數","type");




 


      type _objecttype=type;



      object _object=obj;




 


      object[] paras=null;



      string[] strmember=memberpath.split ('.');



      for (int i=0; i<strmember.length  ;i++)



      {



        string membername=strmember[i];



        if (i>=strmember.length-1 )



          paras=args;



          



        _object = _objecttype.invokemember(membername,



          bindingflags.public | bindingflags.nonpublic |



          bindingflags.instance | bindingflags.static |



          bindingflags.getfield |  bindingflags.getproperty |



          bindingflags.invokemethod | bindingflags.ignorecase ,



          type.defaultbinder,  _object, paras);




 


        if (_object!=null)



          _objecttype=_object.gettype ();



        else if (i<strmember.length-1)



          throw new argumentnullexception(membername);



      }



      return _object;



    }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吉安县| 广元市| 泗水县| 隆昌县| 静乐县| 上栗县| 高青县| 涞水县| 海原县| 丹棱县| 全南县| 灌南县| 科技| 长宁县| 平武县| 宁晋县| 焦作市| 屯门区| 江都市| 潼南县| 城固县| 玉门市| 武夷山市| 雷州市| 赣州市| 梅河口市| 广灵县| 和顺县| 昆明市| 余干县| 泗阳县| 渝北区| 赞皇县| 揭东县| 三穗县| 北辰区| 淮北市| 崇阳县| 景德镇市| 玉门市| 平潭县|