반사 획득 대상 속성 값 및 필드 값

2760 단어 리플렉스
ps: 기술적 함량이 없어서 코드를 직접 붙인다
public T GetFieldValue<T>(object obj, string name)

        {

            Type type = obj.GetType();

            System.Reflection.FieldInfo fieldInfo = type.GetField(name);

            if (fieldInfo == null)

            {

                throw new MissingFieldException(name);

            }



            object objectValue = fieldInfo.GetValue(obj);

            return (T)objectValue;

        }



        public T GetValue<T>(object obj,string name)

        {

           Type type = obj.GetType();

           System.Reflection.PropertyInfo property = type.GetProperty(name);

           if (property == null)

           {

               throw new MissingFieldException(name);

           }

      

           object objectValue = property.GetValue(obj, null);

           return (T)objectValue;

        }

호출 방법
string name = this.GetFieldValue<string>(person,"Name");

int age = this.GetValue<int>(person, "Age");

좋은 웹페이지 즐겨찾기