C#反射检查变量值

 /// 
        /// 检验缓存数据
        /// 
        /// 程序完全限定名
        /// 命名空间
        /// 类名
        /// 方法名
        /// 
        /// 字段
        /// 值
        /// 
        public bool GetData(string AssemblyString, string CacheNameSpace, string ClassName, string MethodName, string Key, string FieldName, string Value)
        {
            try
            {
                bool result = false;
                Type type = System.Reflection.Assembly.Load(AssemblyString).GetType(CacheNameSpace + "." + ClassName);//程序集完全限定名+命名空间名 + 类名

                object obj = Activator.CreateInstance(type, true);

                MethodInfo method = type.GetMethod(MethodName, new Type[] { typeof(string) });

                if (Value.Equals(GetModelValue(FieldName, method.Invoke(obj, new object[] { Key }))))
                {
                    result = true;
                }
                return result;
            }
            catch { return false; }
        }


        /// 
        /// 获取字段属性值
        /// 
        /// 
        /// 
        /// 
        public string GetModelValue(string FieldName, object obj)
        {
            try
            {
                string Value = Convert.ToString(obj.GetType().GetProperty(FieldName).GetValue(obj, null));
                if (string.IsNullOrEmpty(Value)) return null;
                return Value;
            }
            catch { return null; }
        }    

 

你可能感兴趣的:(C#)