Mono.Cecil.TypeResolver.Resolve C# (CSharp) Method

Resolve() public method

public Resolve ( MethodReference method ) : MethodReference
method MethodReference
return MethodReference
        public MethodReference Resolve(MethodReference method)
        {
            var methodReference = method;
            if (IsDummy ())
                return methodReference;

            var declaringType = Resolve (method.DeclaringType);

            var genericInstanceMethod = method as GenericInstanceMethod;
            if (genericInstanceMethod != null) {
                methodReference = new MethodReference (method.Name, method.ReturnType, declaringType);

                foreach (var p in method.Parameters)
                    methodReference.Parameters.Add (new ParameterDefinition (p.Name, p.Attributes, p.ParameterType));

                foreach (var gp in genericInstanceMethod.ElementMethod.GenericParameters)
                    methodReference.GenericParameters.Add (new GenericParameter (gp.Name, methodReference));

                methodReference.HasThis = method.HasThis;

                var m = new GenericInstanceMethod (methodReference);
                foreach (var ga in genericInstanceMethod.GenericArguments) {
                    m.GenericArguments.Add (Resolve (ga));
                }

                methodReference = m;
            } else {
                methodReference = new MethodReference (method.Name, method.ReturnType, declaringType);

                foreach (var gp in method.GenericParameters)
                    methodReference.GenericParameters.Add (new GenericParameter (gp.Name, methodReference));

                foreach (var p in method.Parameters)
                    methodReference.Parameters.Add (new ParameterDefinition (p.Name, p.Attributes, p.ParameterType));

                methodReference.HasThis = method.HasThis;
            }

            return methodReference;
        }

Same methods

TypeResolver::Resolve ( FieldReference field ) : FieldReference
TypeResolver::Resolve ( TypeReference typeReference ) : TypeReference
TypeResolver::Resolve ( TypeReference typeReference, bool includeTypeDefinitions ) : TypeReference