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

Resolve() public method

public Resolve ( ) : Mono.Cecil.MethodDefinition
return Mono.Cecil.MethodDefinition
        public new virtual MethodDefinition Resolve()
        {
            var module = this.Module;
            if (module == null)
                throw new NotSupportedException ();

            return module.Resolve (this);
        }

Usage Example

        static bool MethodMatch(MethodReference candidate, MethodReference method)
        {
            var candidateResolved = candidate.Resolve();

            // Check overrides
            if (candidateResolved.HasOverrides)
            {
                foreach (var @override in candidateResolved.Overrides)
                {
                    var resolvedOverride = ResolveGenericsVisitor.Process(candidate, @override);
                    return MemberEqualityComparer.Default.Equals(resolvedOverride, method);
                }
            }

            if (!candidateResolved.IsVirtual)
                return false;

            if (candidate.Name != method.Name)
                return false;

            if (!TypeMatch(ResolveGenericsVisitor.Process(candidate, candidate.ReturnType), ResolveGenericsVisitor.Process(method, method.ReturnType)))
                return false;

            if (candidate.Parameters.Count != method.Parameters.Count)
                return false;

            for (int i = 0; i < candidate.Parameters.Count; i++)
                if (!TypeMatch(ResolveGenericsVisitor.Process(candidate, candidate.Parameters[i].ParameterType), ResolveGenericsVisitor.Process(method, method.Parameters[i].ParameterType)))
                    return false;

            return true;
        }
All Usage Examples Of Mono.Cecil.MethodReference::Resolve