Exemplo n.º 1
0
 internal MethodBaseInfo(string name, Type declaringType, IEnumerable <Type>?genericArguments, IEnumerable <Type>?parameterTypes, TypeInfoProvider typeInfoProvider)
     : this(
         name,
         typeInfoProvider.Get(declaringType, includePropertyInfosOverride : false, setMemberDeclaringTypesOverride : false),
         genericArguments?.Select(x => typeInfoProvider.Get(x, false, false)),
         parameterTypes?.Select(x => typeInfoProvider.Get(x, false, false)))
 {
 }
Exemplo n.º 2
0
 // TODO: replace binding flags by bool flags
 internal MethodBaseInfo(string name, Type declaringType, BindingFlags bindingFlags, Type[] genericArguments, Type[] parameterTypes, TypeInfoProvider typeInfoProvider)
     : this(
         name,
         typeInfoProvider.Get(declaringType, includePropertyInfosOverride : false, setMemberDeclaringTypesOverride : false),
         bindingFlags,
         genericArguments?.Select(x => typeInfoProvider.Get(x, false, false)),
         parameterTypes?.Select(x => typeInfoProvider.Get(x, false, false)))
 {
 }
Exemplo n.º 3
0
 protected MethodBaseInfo(MethodBaseInfo method, TypeInfoProvider typeInfoProvider)
     : base(method, typeInfoProvider)
 {
     GenericArgumentTypes = method.CheckNotNull(nameof(method)).GenericArgumentTypes
                            .AsNullIfEmpty()?
                            .Select(x => typeInfoProvider.Get(x))
                            .ToList();
     ParameterTypes = method.ParameterTypes
                      .AsNullIfEmpty()?
                      .Select(x => typeInfoProvider.Get(x))
                      .ToList();
 }
Exemplo n.º 4
0
        internal TypeInfo(TypeInfo typeInfo, TypeInfoProvider typeInfoProvider)
        {
            typeInfoProvider.RegisterReference(typeInfo, this);

            Name             = typeInfo.Name;
            Namespace        = typeInfo.Namespace;
            DeclaringType    = typeInfo.DeclaringType is null ? null : typeInfoProvider.Get(typeInfo.DeclaringType);
            GenericArguments = typeInfo.GenericArguments?.Select(x => typeInfoProvider.Get(x)).ToList();
            IsGenericType    = typeInfo.IsGenericType;
            IsAnonymousType  = typeInfo.IsAnonymousType;
            Properties       = typeInfo.Properties?.Select(x => new PropertyInfo(x, typeInfoProvider)).ToList();
            _type            = typeInfo._type;
        }
Exemplo n.º 5
0
        internal TypeInfo(Type type, TypeInfoProvider typeInfoProvider)
        {
            if (type is null)
            {
                throw new ArgumentNullException(nameof(type));
            }

            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.Get(type.DeclaringType, false, false);
            }

            IsGenericType = type.IsGenericType;

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

            IsAnonymousType = type.IsAnonymousType();

            if (IsAnonymousType || typeInfoProvider.IncludePropertyInfos)
            {
                Properties = type
                             .GetProperties()
                             .OrderBy(x => x.MetadataToken)
                             .Select(x => new PropertyInfo(x.Name, typeInfoProvider.Get(x.PropertyType), typeInfoProvider.SetMemberDeclaringTypes ? this : null))
                             .ToList();
            }
        }
Exemplo n.º 6
0
        internal MethodBaseInfo(System.Reflection.MethodBase methodInfo, TypeInfoProvider typeInfoProvider)
            : base(methodInfo, typeInfoProvider)
        {
            var genericArguments = methodInfo.IsGenericMethod ? methodInfo.GetGenericArguments() : null;

            GenericArgumentTypes = genericArguments is null || genericArguments.Length == 0
                ? null
                : genericArguments.Select(x => typeInfoProvider.Get(x, false, false)).ToList();

            var parameters = methodInfo.GetParameters();

            ParameterTypes = parameters.Length == 0
                ? null
                : parameters.Select(x => typeInfoProvider.Get(x.ParameterType, false, false)).ToList();
        }
Exemplo n.º 7
0
 internal MemberInfo(MemberInfo memberInfo, TypeInfoProvider typeInfoProvider)
 {
     if (!(memberInfo is null))
     {
         Name          = memberInfo.Name;
         DeclaringType = typeInfoProvider.Get(memberInfo.DeclaringType);
     }
 }
Exemplo n.º 8
0
 internal MemberInfo(System.Reflection.MemberInfo memberInfo, TypeInfoProvider typeInfoProvider)
 {
     if (!(memberInfo is null))
     {
         Name          = memberInfo.Name;
         DeclaringType = typeInfoProvider.Get(memberInfo.DeclaringType, false, false);
     }
 }
Exemplo n.º 9
0
        internal PropertyInfo(PropertyInfo propertyInfo, TypeInfoProvider typeInfoProvider)
            : base(propertyInfo, typeInfoProvider)
        {
            if (propertyInfo is null)
            {
                throw new ArgumentNullException(nameof(propertyInfo));
            }

            PropertyType = typeInfoProvider.Get(propertyInfo.PropertyType);
            _property    = propertyInfo._property;
        }
Exemplo n.º 10
0
        internal MethodBaseInfo(System.Reflection.MethodBase methodInfo, TypeInfoProvider typeInfoProvider)
            : base(methodInfo, typeInfoProvider)
        {
            var bindingFlags = methodInfo.IsStatic ? BindingFlags.Static : BindingFlags.Instance;

            bindingFlags |= methodInfo.IsPublic ? BindingFlags.Public : BindingFlags.NonPublic;
            BindingFlags  = bindingFlags;

            var genericArguments = methodInfo.IsGenericMethod ? methodInfo.GetGenericArguments() : null;

            GenericArgumentTypes = genericArguments is null || genericArguments.Length == 0
                ? null
                : genericArguments.Select(x => typeInfoProvider.Get(x, false, false)).ToList();

            var parameters = methodInfo.GetParameters();

            ParameterTypes = parameters.Length == 0
                ? null
                : parameters.Select(x => typeInfoProvider.Get(x.ParameterType, false, false)).ToList();
        }
Exemplo n.º 11
0
        internal MemberInfo(System.Reflection.MemberInfo memberInfo, TypeInfoProvider typeInfoProvider)
        {
            if (memberInfo is null)
            {
                throw new ArgumentNullException(nameof(memberInfo));
            }

            Name          = memberInfo.Name;
            DeclaringType = typeInfoProvider.Get(memberInfo.DeclaringType, false, false);
            if (memberInfo.GetBindingFlags().Contains(System.Reflection.BindingFlags.Static))
            {
                IsStatic = true;
            }
        }
Exemplo n.º 12
0
        internal TypeInfo(TypeInfo typeInfo, TypeInfoProvider typeInfoProvider)
        {
            if (typeInfo is null)
            {
                throw new ArgumentNullException(nameof(typeInfo));
            }

            typeInfoProvider.RegisterReference(typeInfo, this);

            Name          = typeInfo.Name;
            Namespace     = typeInfo.Namespace;
            DeclaringType = typeInfo.DeclaringType is null ? null : typeInfoProvider.Get(typeInfo.DeclaringType);

            // TODO: why is the dammit operator required!?
            GenericArguments = typeInfo.GenericArguments?.Select(typeInfoProvider.Get).ToList() !;
            IsGenericType    = typeInfo.IsGenericType;
            IsAnonymousType  = typeInfo.IsAnonymousType;
            Properties       = typeInfo.Properties?.Select(x => new PropertyInfo(x, typeInfoProvider)).ToList();
            _type            = typeInfo._type;
        }
Exemplo n.º 13
0
 internal MethodInfo(string name, Type declaringType, IEnumerable <Type>?genericArguments, IEnumerable <Type>?parameterTypes, Type?returnType, TypeInfoProvider typeInfoProvider)
     : base(name, declaringType, genericArguments, parameterTypes, typeInfoProvider)
 {
     ReturnType = typeInfoProvider.Get(returnType, false, false);
 }
Exemplo n.º 14
0
 internal MethodInfo(System.Reflection.MethodInfo methodInfo, TypeInfoProvider typeInfoProvider)
     : base(methodInfo, typeInfoProvider)
 {
     _method    = methodInfo;
     ReturnType = typeInfoProvider.Get(methodInfo?.ReturnType, false, false);
 }
Exemplo n.º 15
0
 internal PropertyInfo(PropertyInfo propertyInfo, TypeInfoProvider typeInfoProvider)
     : base(propertyInfo, typeInfoProvider)
 {
     PropertyType = typeInfoProvider.Get(propertyInfo.PropertyType);
     _property    = propertyInfo._property;
 }
Exemplo n.º 16
0
 internal PropertyInfo(System.Reflection.PropertyInfo propertyInfo, TypeInfoProvider typeInfoProvider)
     : base(propertyInfo, typeInfoProvider)
 {
     _property    = propertyInfo;
     PropertyType = typeInfoProvider.Get(propertyInfo.PropertyType, false, false);
 }
Exemplo n.º 17
0
 private PropertyInfo(string propertyName, Type propertyType, Type declaringType, TypeInfoProvider typeInfoProvider)
     : this(propertyName, typeInfoProvider.Get(propertyType, false, false), typeInfoProvider.Get(declaringType, false, false))
 {
 }