static bool DelegateEquals(DmdType td1, DmdType td2) { var invoke1 = td1.GetMethod("Invoke"); var invoke2 = td2.GetMethod("Invoke"); if ((object)invoke1 == null || (object)invoke2 == null) { return(false); } //TODO: Compare method signatures. Prevent infinite recursion... return(true); }