コード例 #1
0
        private static object GetValue(this System.Reflection.MemberInfo member, object obj, object[] index = null)
        {
            switch (member)
            {
            case System.Reflection.FieldInfo field: return(field.GetValue(obj));

            case System.Reflection.PropertyInfo property: return(property.GetValue(obj, index));

            default: throw new ArgumentException($"unknown member type:{member.GetType().FullName}");
            }
        }
コード例 #2
0
        public static MemberTypes GetMemberType(this System.Reflection.MemberInfo member)
        {
            if (member is System.Reflection.FieldInfo)
            {
                return(MemberTypes.Field);
            }

            if (member is System.Reflection.ConstructorInfo)
            {
                return(MemberTypes.Constructor);
            }

            if (member is System.Reflection.MethodInfo)
            {
                return(MemberTypes.Method);
            }

            if (member is System.Reflection.PropertyInfo)
            {
                return(MemberTypes.Property);
            }

            throw new Exception($"Unsupported member type: {member.GetType()}");
        }