/// <summary> /// Gets a named method on the type. This method only looks at methods defined /// in type's metadata. The <paramref name="signature"/> parameter can be null. /// If signature is not specified and there are multiple matches, the first one /// is returned. If substitution is not null, then substitution will be applied to /// possible target methods before signature comparison. Returns null if method not found. /// </summary> public virtual MethodDesc GetMethod(string name, MethodSignature signature, Instantiation substitution) { foreach (var method in GetMethods()) { if (method.Name == name) { if (signature == null || signature.Equals(method.Signature.ApplySubstitution(substitution))) { return(method); } } } return(null); }
// TODO: Substitutions, generics, modopts, ... public virtual MethodDesc GetMethod(string name, MethodSignature signature) { foreach (var method in GetMethods()) { if (method.Name == name) { if (signature == null || signature.Equals(method.Signature)) { return(method); } } } return(null); }
/// <summary> /// Gets a named method on the type. This method only looks at methods defined /// in type's metadata. The <paramref name="signature"/> parameter can be null. /// If signature is not specified and there are multiple matches, the first one /// is returned. Returns null if method not found. /// </summary> // TODO: Substitutions, generics, modopts, ... public virtual MethodDesc GetMethod(string name, MethodSignature signature) { foreach (var method in GetMethods()) { if (method.Name == name) { if (signature == null || signature.Equals(method.Signature)) return method; } } return null; }
public override MethodDesc GetMethod(string name, MethodSignature signature) { var metadataReader = this.MetadataReader; var stringComparer = metadataReader.StringComparer; foreach (var handle in _typeDefinition.GetMethods()) { if (stringComparer.Equals(metadataReader.GetMethodDefinition(handle).Name, name)) { MethodDesc method = (MethodDesc)_module.GetObject(handle); if (signature == null || signature.Equals(method.Signature)) return method; } } return null; }
public override MethodDesc GetMethod(string name, MethodSignature signature) { var metadataReader = this.MetadataReader; foreach (var handle in _typeDefinition.Methods) { if (metadataReader.GetMethod(handle).Name.StringEquals(name, metadataReader)) { MethodDesc method = (MethodDesc)_metadataUnit.GetMethod(handle, this); if (signature == null || signature.Equals(method.Signature)) return method; } } return null; }