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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 班戈县| 建昌县| 陆丰市| 班玛县| 清苑县| 荆门市| 石楼县| 高雄市| 新河县| 保定市| 土默特右旗| 河东区| 平湖市| 鄱阳县| 宽城| 宜兴市| 金昌市| 瑞金市| 于田县| 舞钢市| 疏勒县| 准格尔旗| 盐山县| 调兵山市| 玉门市| 探索| 和林格尔县| 旬邑县| 沛县| 财经| 墨玉县| 桂林市| 奉节县| 佛山市| 青岛市| 腾冲县| 平谷区| 家居| 平陆县| 峨边| 堆龙德庆县|