public bool CanInstantiationsShareCode(RuntimeTypeHandle[] genericArgHandles1, RuntimeTypeHandle[] genericArgHandles2, CanonicalFormKind kind) { if (genericArgHandles1.Length != genericArgHandles2.Length) return false; bool match = true; TypeSystemContext context = TypeSystemContextFactory.Create(); for (int i = 0; i < genericArgHandles1.Length; i++) { TypeDesc genericArg1 = context.ResolveRuntimeTypeHandle(genericArgHandles1[i]); TypeDesc genericArg2 = context.ResolveRuntimeTypeHandle(genericArgHandles2[i]); if (context.ConvertToCanon(genericArg1, kind) != context.ConvertToCanon(genericArg2, kind)) { match = false; break; } } TypeSystemContextFactory.Recycle(context); return match; }