Ejemplo n.º 1
0
        /// <summary>
        /// 获取指定成员的 <see cref="ColumnAttribute"/>
        /// </summary>
        /// <param name="member">成员</param>
        /// <param name="objType">成员所在类型</param>
        /// <returns></returns>
        public virtual ColumnAttribute GetColumnAttribute(MemberInfo member, Type objType)
        {
            Type dataType = TypeUtils.GetDataType(member);

            if (dataType == null)
            {
                return(null);
            }

            ColumnAttribute column = null;
            Type            type   = objType != null ? objType : (member.ReflectedType != null ? member.ReflectedType : member.DeclaringType);

            if (type != null && !TypeUtils.IsAnonymousType(type) && !TypeUtils.IsPrimitiveType(type))
            {
                TypeRuntimeInfo typeRuntime = TypeRuntimeInfoCache.GetRuntimeInfo(type);
                var             invoker     = typeRuntime.GetInvoker(member.Name);
                if (invoker != null)
                {
                    column = invoker.Column;
                }
            }

            return(column);
        }