コード例 #1
0
        internal static MemberInfo GetBaseMemberInfo(MemberInfo member)
        {
            object obj = AttributeDataCache._baseMemberMap[(object)member];

            if (obj == AttributeDataCache._noMemberInfo)
            {
                return((MemberInfo)null);
            }
            if (obj == null)
            {
                obj = (object)AttributeDataCache.CalculateBaseMemberInfo(member);
                lock (AttributeDataCache._syncObject)
                    AttributeDataCache._baseMemberMap[(object)member] = obj ?? AttributeDataCache._noMemberInfo;
            }
            return((MemberInfo)obj);
        }
コード例 #2
0
        private static MemberInfo GetBasePropertyInfo(MemberInfo info, Type targetType)
        {
            PropertyInfo propertyInfo = info as PropertyInfo;

            return((MemberInfo)targetType.GetProperty(propertyInfo.Name, AttributeDataCache._getInfoBindingFlags, (Binder)null, propertyInfo.PropertyType, AttributeDataCache.ToTypeArray(propertyInfo.GetIndexParameters()), (ParameterModifier[])null));
        }
コード例 #3
0
        private static MemberInfo GetBaseMethodInfo(MemberInfo info, Type targetType)
        {
            MethodInfo methodInfo = info as MethodInfo;

            if (methodInfo.IsStatic)
            {
                return((MemberInfo)null);
            }
            return((MemberInfo)targetType.GetMethod(methodInfo.Name, AttributeDataCache._getInfoBindingFlags, (Binder)null, AttributeDataCache.ToTypeArray(methodInfo.GetParameters()), (ParameterModifier[])null));
        }