示例#1
0
        protected virtual void Visit(MethodReference methodReference, Context context)
        {
            VisitTypeReference(methodReference.ReturnType, context.ReturnType(methodReference));
            VisitTypeReference(methodReference.DeclaringType, context.DeclaringType(methodReference));

            foreach (var genericParameter in methodReference.GenericParameters)
            {
                VisitTypeReference(genericParameter, context.GenericParameter(methodReference));
            }

            foreach (var parameterDefinition in methodReference.Parameters)
            {
                Visit(parameterDefinition, context.Parameter(methodReference));
            }

            var genericInstanceMethod = methodReference as GenericInstanceMethod;

            if (genericInstanceMethod == null)
            {
                return;
            }

            foreach (var genericArgument in genericInstanceMethod.GenericArguments)
            {
                VisitTypeReference(genericArgument, context.GenericArgument(genericInstanceMethod));
            }
        }
示例#2
0
        protected virtual void Visit(MethodDefinition methodDefinition, Context context)
        {
            VisitTypeReference(methodDefinition.ReturnType, context.ReturnType(methodDefinition));

            foreach (var customAttribute in methodDefinition.CustomAttributes)
            {
                Visit(customAttribute, context.Attribute(methodDefinition));
            }

            foreach (var genericParameter in methodDefinition.GenericParameters)
            {
                Visit(genericParameter, context.GenericParameter(methodDefinition));
            }

            foreach (var parameterDefinition in methodDefinition.Parameters)
            {
                Visit(parameterDefinition, context.Parameter(methodDefinition));
            }

            if (!methodDefinition.HasBody)
            {
                return;
            }

            Visit(methodDefinition.Body, context.MethodBody(methodDefinition));
        }
示例#3
0
 protected override void Visit(MethodDefinition methodDefinition, Unity.Cecil.Visitor.Context context)
 {
     if ((!methodDefinition.HasGenericParameters || ((this._genericContext.Method != null) && (this._genericContext.Method.Resolve() == methodDefinition))) && !GenericsUtilities.CheckForMaximumRecursion(this._genericContext.Type))
     {
         base.VisitTypeReference(methodDefinition.ReturnType, context.ReturnType(methodDefinition));
         foreach (ParameterDefinition definition in methodDefinition.Parameters)
         {
             this.Visit(definition, context.Parameter(methodDefinition));
         }
     }
 }
示例#4
0
 protected virtual void Visit(MethodDefinition methodDefinition, Context context)
 {
     this.VisitTypeReference(methodDefinition.ReturnType, context.ReturnType(methodDefinition));
     foreach (Mono.Cecil.CustomAttribute attribute in methodDefinition.CustomAttributes)
     {
         this.Visit(attribute, context.Attribute(methodDefinition));
     }
     foreach (GenericParameter parameter in methodDefinition.GenericParameters)
     {
         this.Visit(parameter, context.GenericParameter(methodDefinition));
     }
     foreach (ParameterDefinition definition in methodDefinition.Parameters)
     {
         this.Visit(definition, context.Parameter(methodDefinition));
     }
     if (methodDefinition.HasBody)
     {
         this.Visit(methodDefinition.Body, context.MethodBody(methodDefinition));
     }
 }
示例#5
0
        protected virtual void Visit(MethodReference methodReference, Context context)
        {
            this.VisitTypeReference(methodReference.ReturnType, context.ReturnType(methodReference));
            this.VisitTypeReference(methodReference.DeclaringType, context.DeclaringType(methodReference));
            foreach (GenericParameter parameter in methodReference.GenericParameters)
            {
                this.VisitTypeReference(parameter, context.GenericParameter(methodReference));
            }
            foreach (ParameterDefinition definition in methodReference.Parameters)
            {
                this.Visit(definition, context.Parameter(methodReference));
            }
            GenericInstanceMethod data = methodReference as GenericInstanceMethod;

            if (data != null)
            {
                foreach (TypeReference reference in data.GenericArguments)
                {
                    this.VisitTypeReference(reference, context.GenericArgument(data));
                }
            }
        }