Esempio n. 1
0
 public PropertyMember(IType declaringType, string name, string fullName, ITypeInstance <IType> type,
                       bool isCompilerGenerated)
 {
     Name                   = name;
     FullName               = fullName;
     _typeInstance          = type;
     DeclaringType          = declaringType;
     IsCompilerGenerated    = isCompilerGenerated;
     PropertyTypeDependency = new PropertyTypeDependency(this);
 }
Esempio n. 2
0
 public FieldMember(IType declaringType, string name, string fullName, Visibility visibility,
                    ITypeInstance <IType> typeInstance, bool isCompilerGenerated)
 {
     DeclaringType       = declaringType;
     Name                = name;
     FullName            = fullName;
     Visibility          = visibility;
     IsCompilerGenerated = isCompilerGenerated;
     _typeInstance       = typeInstance;
 }
Esempio n. 3
0
        public MemberGenericParameterTypeConstraintDependency(GenericParameter originGenericParameter,
                                                              ITypeInstance <IType> typeConstraintInstance)
            : base(originGenericParameter.DeclaringMethod, typeConstraintInstance)
        {
            if (!originGenericParameter.DeclarerIsMethod)
            {
                throw new ArgumentException(
                          "Use TypeGenericParameterTypeConstraintDependency for Generic Parameters of Types.");
            }

            OriginGenericParameter = originGenericParameter;
        }
Esempio n. 4
0
 public MethodMember(string name, string fullName, IType declaringType, Visibility visibility,
                     ITypeInstance <IType> returnType, bool isVirtual, MethodForm methodForm, bool isGeneric, bool isStub,
                     bool isCompilerGenerated)
 {
     Name                = name;
     FullName            = fullName;
     DeclaringType       = declaringType;
     Visibility          = visibility;
     _returnTypeInstance = returnType;
     IsVirtual           = isVirtual;
     MethodForm          = methodForm;
     IsGeneric           = isGeneric;
     IsStub              = isStub;
     IsCompilerGenerated = isCompilerGenerated;
 }
 // ReSharper disable SuggestBaseTypeForParameter
 public InheritsBaseClassDependency(Class origin, ITypeInstance <Class> targetInstance)
     : base(origin, targetInstance)
 {
 }
 public ImplementsInterfaceDependency(IType origin, ITypeInstance <Interface> implementedInterface) : base(origin,
                                                                                                           implementedInterface)
 {
 }
Esempio n. 7
0
 public AttributeMemberDependency(IMember member, ITypeInstance <Attribute> attributeInstance)
     : base(member, attributeInstance)
 {
 }
Esempio n. 8
0
 public TypeReferenceDependency(IType origin, ITypeInstance <IType> targetInstance)
     : base(origin, targetInstance)
 {
 }
Esempio n. 9
0
        private MethodMemberInstance CreateMethodMemberFromMethodReference(
            [NotNull] ITypeInstance <IType> typeInstance, [NotNull] MethodReference methodReference)
        {
            if (methodReference.IsGenericInstance)
            {
                var elementMethod =
                    CreateMethodMemberFromMethodReference(typeInstance, methodReference.GetElementMethod()).Member;

                var genericInstanceMethod = (GenericInstanceMethod)methodReference;
                var genericArguments      = genericInstanceMethod.GenericArguments
                                            .Select(CreateGenericArgumentFromTypeReference)
                                            .Where(argument => !argument.Type.IsCompilerGenerated);

                return(new MethodMemberInstance(elementMethod, typeInstance.GenericArguments, genericArguments));
            }

            var returnTypeReference = methodReference.ReturnType;
            var returnType          = GetOrCreateStubTypeInstanceFromTypeReference(returnTypeReference);

            var        name                = methodReference.BuildMethodMemberName();
            var        fullName            = methodReference.BuildFullName();
            var        isGeneric           = methodReference.HasGenericParameters;
            var        isCompilerGenerated = methodReference.IsCompilerGenerated();
            MethodForm methodForm;
            Visibility visibility;
            bool       isStub;

            MethodDefinition methodDefinition;

            try
            {
                methodDefinition = methodReference.Resolve();
            }
            catch (AssemblyResolutionException)
            {
                methodDefinition = null;
            }

            if (methodDefinition == null)
            {
                visibility = Public;
                methodForm = methodReference.HasConstructorName() ? MethodForm.Constructor : MethodForm.Normal;
                isStub     = true;
            }
            else
            {
                visibility = methodDefinition.GetVisibility();
                methodForm = methodDefinition.GetMethodForm();
                isStub     = false;
            }

            var methodMember = new MethodMember(name, fullName, typeInstance.Type, visibility, returnType,
                                                false, methodForm, isGeneric, isStub, isCompilerGenerated);

            var parameters = methodReference.GetParameters(this).ToList();

            methodMember.ParameterInstances.AddRange(parameters);

            var genericParameters = GetGenericParameters(methodReference);

            methodMember.GenericParameters.AddRange(genericParameters);

            return(new MethodMemberInstance(methodMember, typeInstance.GenericArguments,
                                            Enumerable.Empty <GenericArgument>()));
        }
 // ReSharper disable once SuggestBaseTypeForParameter
 public MethodSignatureDependency(MethodMember method, ITypeInstance <IType> signatureTypeInstance) : base(method,
                                                                                                           signatureTypeInstance)
 {
 }
 public TypeCheckDependency(IMember originMember, ITypeInstance <IType> typeCheckTypeInstance)
     : base(originMember, typeCheckTypeInstance)
 {
 }
Esempio n. 12
0
 public CastTypeDependency(IMember originMember, ITypeInstance <IType> castTypeInstance)
     : base(originMember, castTypeInstance)
 {
 }
Esempio n. 13
0
 public MetaDataDependency(IMember originMember, ITypeInstance <IType> metaDataTypeInstance)
     : base(originMember, metaDataTypeInstance)
 {
 }
Esempio n. 14
0
 protected MemberTypeInstanceDependency(IMember originMember, ITypeInstance <IType> targetInstance)
     : base(originMember.DeclaringType, targetInstance)
 {
     OriginMember = originMember;
 }
 protected TypeInstanceDependency(IType origin, ITypeInstance <IType> targetInstance)
 {
     Origin         = origin;
     TargetInstance = targetInstance;
 }
 // ReSharper disable once SuggestBaseTypeForParameter
 public BodyTypeMemberDependency(MethodMember method, ITypeInstance <IType> targetTypeInstance)
     : base(method, targetTypeInstance)
 {
 }
Esempio n. 17
0
 public GenericArgument(ITypeInstance <IType> typeInstance)
 {
     Type             = typeInstance.Type;
     GenericArguments = typeInstance.GenericArguments;
 }
Esempio n. 18
0
 internal MethodMemberInstance GetOrCreateMethodMemberFromMethodReference(
     [NotNull] ITypeInstance <IType> typeInstance, [NotNull] MethodReference methodReference)
 {
     return(_methodMemberRegistry.GetOrCreateMethodFromMethodReference(methodReference,
                                                                       s => CreateMethodMemberFromMethodReference(typeInstance, methodReference)));
 }
 public AttributeTypeDependency(IType origin, ITypeInstance <Attribute> attributeInstance)
     : base(origin, attributeInstance)
 {
 }