C#如何反射获取类中const常量(Static 属性/字段),并且获取值和设置值

    //动态链接库中ClsPublic类有一变量 private static string key="1111";
    //下面通过反射的技术修改和获取值
    //设置key 
        public static void updatePalmKey(string key = "test")
        {
            BindingFlags flag = BindingFlags.Static | BindingFlags.NonPublic;
            FieldInfo f_key = typeof(ClsPublic).GetField("key", flag);
            f_key.SetValue(new ClsPublic(), key);
        }

        /// <summary>
        /// 获取key
        /// </summary>
        /// <returns></returns>
        public static string getPalmKey()
        {
            BindingFlags flag = BindingFlags.Static | BindingFlags.NonPublic;
            FieldInfo f_key = typeof(ClsPublic).GetField("key", flag);
            object o = f_key.GetValue(new ClsPublic());
            return o.ToString();
        }
flag 用于表示 Static 和 NonPublic 私有类型(Private)的 静态(Staic)的 字段(Field) 或 属性(Property) ,Const 被隐式的认为是 静态属性。

//.net framework 4.0 可用
posted @ 2019-10-12 13:55  德丽莎·阿波卡利斯  阅读(3659)  评论(0编辑  收藏  举报