C#反射

        ///
        /// 反射調用(獲取方法以及動態調用方法)
        /// </summary>
        /// <param name="spacename">命名空間</param>
        /// <param name="function">方法名稱</param>
        public static void ReflectionToActive(string spacename, string function, string content)
        {
            try
            {
                if (spacename != "" && function != "" && content != "")
                {
                    Type t = Type.GetType(spacename); //獲取類型信息
                    object[] constuctParms = new object[] { }; //構造器的參數
                    object dObj = Activator.CreateInstance(t, constuctParms); //根據類型創建對象
                    MethodInfo method = t.GetMethod(function); //獲取方法的信息
                    //調用方法的一些標誌位,這裏的含義是Public並且是實例方法,這也是默認值
                    BindingFlags flag = BindingFlags.Public | BindingFlags.Instance;
                    object[] parameters = new object[] { content }; //方法的參數
                    method.Invoke(dObj, flag, Type.DefaultBinder, parameters, null); //調用方法,用一個object接收返回值
                }
            }
            catch (System.Exception err)
            {
                //記錄系統錯誤日誌
            }
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章