public bool MatchMethodSignatures(MethodSignature signature1, MethodSignature signature2)
{
if (signature1 == null && signature2 == null)
return true;
if (signature1 == null || signature2 == null)
return false;
return signature1.Attributes == signature2.Attributes &&
signature1.GenericParameterCount == signature2.GenericParameterCount &&
MatchTypes(signature1.ReturnType, signature2.ReturnType) &&
MatchManyTypes(signature1.Parameters.Select(x => x.ParameterType),
signature2.Parameters.Select(x => x.ParameterType));
}