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

首頁 > 編程 > .NET > 正文

用反射調用任意.net庫中的方法

2024-07-10 12:55:27
字體:
來源:轉載
供稿:網友


收集最實用的網頁特效代碼!

  函數如下,有注釋,請自行查看:)注:1、returnmessage 是我自寫的一個類,作用請查看我的其他文章,我也把這個類一并附在后面2、通過namespaceandclassname和methodname實際上就可以精確定位一個方法了如調用abc.dll里的namespace1.class1.main,調用起來就是callassembly("abc.dll","namespace1.class1","main",null) public static returnmessage callassembly(string path,string namespaceandclassname,string methodname,object[] parameters)
        {
            try
            {
                assembly ass=assembly.loadfrom(path);//調入文件(不限于dll,exe亦可,只要是.net)
                type tp=ass.gettype(namespaceandclassname);//namespaceandclassname是"名字空間.類名",如"namespace1.class1"
                methodinfo mi=tp.getmethod(methodname);//methodname是要調用的方法名,如"main"
                object meobj=system.activator.createinstance(tp);
                mi.invoke(meobj,parameters);//parameters是調用目標方法時傳入的參數列表
                return new returnmessage(true,"成功調用",1);
            }
            catch(exception e)
            {
                return new returnmessage(false,"出現異常,消息為:"+e.message,-1,e);
            }
        } 附returnmessagepublic class returnmessage
    {
        public returnmessage()
        {
            this.m_succeed=false;
            this.m_message="";
            this.m_code=-1000;
            this.m_data=null;
        }
        public returnmessage(bool issucceed)
        {
            this.m_succeed=issucceed;
        }
        public returnmessage(bool issucceed,string message)
        {
            this.m_succeed=issucceed;
            this.m_message=message;
        }
        public returnmessage(bool issucceed,string message,int code)
        {
            this.m_succeed=issucceed;
            this.m_message=message;
            this.m_code=code;
        }
        public returnmessage(bool issucceed,string message,int code,object data)
        {
            this.m_succeed=issucceed;
            this.m_message=message;
            this.m_code=code;
            this.m_data=data;
        }
        public returnmessage(bool issucceed,string message,int code,object data,object[] datas)
        {
            this.m_succeed=issucceed;
            this.m_message=message;
            this.m_code=code;
            this.m_data=data;
            this.m_datas=datas;
        }
        //
        bool m_succeed;
        string m_message;
        int m_code;
        object m_data;
        object[] m_datas;
        public bool succeed
        {
            get{return m_succeed;}
            set{m_succeed=value;}
        }
        public string message
        {
            get{return m_message;}
            set{m_message=value;}
        }
        public int code
        {
            get{return m_code;}
            set{m_code=value;}
        }
        public object data
        {
            get{return m_data;}
            set{m_data=value;}
        }
        public object[] datas
        {
            get{return m_datas;}
            set{m_datas=value;}
        }
    }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阜城县| 手游| 金秀| 隆尧县| 焦作市| 岳西县| 嘉善县| 阜平县| 商河县| 化隆| 三门县| 聂荣县| 朔州市| 屯门区| 台东县| 古田县| 屯留县| 曲水县| 马尔康县| 涿州市| 宁明县| 即墨市| 谢通门县| 西林县| 永清县| 黄山市| 阳春市| 襄汾县| 苏州市| 和政县| 岐山县| 曲麻莱县| 汾阳市| 外汇| 宣汉县| 新巴尔虎左旗| 河池市| 贺兰县| 井陉县| 铜山县| 梨树县|