Exemplo n.º 1
0
 protected MethodBaseInfo(string name, Type declaringType, IEnumerable <Type>?genericArguments, IEnumerable <Type>?parameterTypes, TypeInfoProvider typeInfoProvider)
     : this(
         name,
         typeInfoProvider.CheckNotNull(nameof(typeInfoProvider)).GetTypeInfo(declaringType, includePropertyInfos : false, setMemberDeclaringTypes : false),
         genericArguments?.Select(x => typeInfoProvider.GetTypeInfo(x, false, false)),
         parameterTypes?.Select(x => typeInfoProvider.GetTypeInfo(x, false, false)))
 {
 }
Exemplo n.º 2
0
        protected MethodBaseInfo(System.Reflection.MethodBase method, TypeInfoProvider typeInfoProvider)
            : base(method, typeInfoProvider)
        {
            var genericArguments = method.CheckNotNull(nameof(method)).IsGenericMethod ? method.GetGenericArguments() : null;

            GenericArgumentTypes = genericArguments
                                   .AsNullIfEmpty()?
                                   .Select(x => typeInfoProvider.GetTypeInfo(x, false, false))
                                   .ToList();
            ParameterTypes = method
                             .GetParameters()
                             .AsNullIfEmpty()?
                             .Select(x => typeInfoProvider.GetTypeInfo(x.ParameterType, false, false))
                             .ToList();
        }
Exemplo n.º 3
0
        internal TypeInfo(Type type, TypeInfoProvider typeInfoProvider)
        {
            typeInfoProvider.RegisterReference(type, this);

            _type = type;

            Name = type.Name;

            Namespace = type.Namespace;

            if (type.IsArray)
            {
                if (!IsArray)
                {
                    throw new ArgumentException("Type name is not in expected format for array type");
                }

                type = type.GetElementType() !;
            }

            if (type.IsNested && !type.IsGenericParameter)
            {
                DeclaringType = typeInfoProvider.GetTypeInfo(type.DeclaringType, false, false);
            }

            IsGenericType = type.IsGenericType;

            if (IsGenericType && !type.GetTypeInfo().IsGenericTypeDefinition)
            {
                GenericArguments = type
                                   .GetGenericArguments()
                                   .Select(x => typeInfoProvider.GetTypeInfo(x))
                                   .ToList();
            }

            IsAnonymousType = type.IsAnonymousType();

            if (IsAnonymousType || typeInfoProvider.IncludePropertyInfos)
            {
                Properties = type
                             .GetProperties()
                             .OrderBy(x => x.MetadataToken)
                             .Select(x => new PropertyInfo(x.Name, typeInfoProvider.GetTypeInfo(x.PropertyType), typeInfoProvider.SetMemberDeclaringTypes ? this : null))
                             .ToList();
            }
        }
Exemplo n.º 4
0
 private PropertyInfo(string propertyName, Type propertyType, Type declaringType, TypeInfoProvider typeInfoProvider)
     : this(propertyName, typeInfoProvider.GetTypeInfo(propertyType, false, false), typeInfoProvider.GetTypeInfo(declaringType, false, false))
 {
 }
Exemplo n.º 5
0
 internal PropertyInfo(System.Reflection.PropertyInfo property, TypeInfoProvider typeInfoProvider)
     : base(property, typeInfoProvider)
 {
     _property    = property;
     PropertyType = typeInfoProvider.GetTypeInfo(property.PropertyType, false, false);
 }