国产探花免费观看_亚洲丰满少妇自慰呻吟_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;



    }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蓬溪县| 阳山县| 田林县| 碌曲县| 济源市| 沙雅县| 双峰县| 北宁市| 宿迁市| 德格县| 博野县| 湾仔区| 垦利县| 碌曲县| 阿巴嘎旗| 永兴县| 萨迦县| 灵石县| 睢宁县| 武乡县| 谢通门县| 安仁县| 宜良县| 罗源县| 运城市| 平阴县| 淮北市| 六枝特区| 罗江县| 大荔县| 贵德县| 开阳县| 紫云| 合山市| 庆安县| 益阳市| 疏附县| 稷山县| 宜城市| 阿拉善右旗| 嘉黎县|