Mono.Cecil.MetadataResolver.GetMethod C# (CSharp) Method

GetMethod() public static method

public static GetMethod ( Collection methods, MethodReference reference ) : Mono.Cecil.MethodDefinition
methods Collection
reference MethodReference
return Mono.Cecil.MethodDefinition
		public static MethodDefinition GetMethod (Collection<MethodDefinition> methods, MethodReference reference)
		{
			for (int i = 0; i < methods.Count; i++) {
				var method = methods [i];

				if (method.Name != reference.Name)
					continue;

				if (method.HasGenericParameters != reference.HasGenericParameters)
					continue;

				if (method.HasGenericParameters && method.GenericParameters.Count != reference.GenericParameters.Count)
					continue;

				if (!AreSame (method.ReturnType, reference.ReturnType))
					continue;

				if (method.IsVarArg () != reference.IsVarArg ())
					continue;

				if (method.IsVarArg () && IsVarArgCallTo (method, reference))
					return method;

				if (method.HasParameters != reference.HasParameters)
					continue;

				if (!method.HasParameters && !reference.HasParameters)
					return method;

				if (!AreSame (method.Parameters, reference.Parameters))
					continue;

				return method;
			}

			return null;
		}

Same methods

MetadataResolver::GetMethod ( Mono.Cecil.TypeDefinition type, MethodReference reference ) : Mono.Cecil.MethodDefinition

Usage Example

 private MethodDefinition GetMethod(TypeDefinition type, MethodReference reference)
 {
     while (type != null)
     {
         MethodDefinition method = MetadataResolver.GetMethod(type.Methods, reference);
         if (method != null)
         {
             return(method);
         }
         if (type.BaseType == null)
         {
             return(null);
         }
         type = this.Resolve(type.BaseType);
     }
     return(null);
 }