Criar instância da classe genérica com o parâmetro de tipo genérico dinâmico

Eu preciso criar uma instância de uma classe genérica como esta:

 Type T = Type.GetType(className).GetMethod(functionName).ReturnType;
 var comparer = new MyComparer<T>(); // ERROR: "The type or namespace name 'T' could not be found"

Eu achei istoresponda onde isso é possível apenas com reflexão. Mas, usando a reflexão, obtenho um objeto que preciso converter no meu tipo genérico. Eu tentei assim

 Type myGeneric = typeof(MyComparer<>);
 Type constructedClass = myGeneric.MakeGenericType();
 object created = Activator.CreateInstance(constructedClass);
 var comparer = (T)Convert.ChangeType(created, T);// ERROR: "The type or namespace name 'T' could not be found"

mas obtenha o mesmo erro. Como resolver isso?

Aqui está um exemplo completo:

    public static bool Test(string className, string functionName, object[] parameters, object correctResult)
    {
        var method = Type.GetType(className).GetMethod(functionName);
        Type T = method.ReturnType;
        var myResult = method.Invoke(null, parameters);
        dynamic myResultAsT = Convert.ChangeType(myResult, T);
        dynamic correctResultAsT = Convert.ChangeType(correctResult, T);
        var comparer = new MyComparer<T>();    // Problem is here!!!       
        return comparer.Equals(myResultAsT, correctResultAsT);            
    }

A idéia é fazer um teste de unidade que chame uma função com parâmetros e compare seu resultado com o resultado correto. Mas eu preciso de comparador personalizado, então eu implementeiMyComparer que não posso usar devido a um erro do compilador.

public class MyComparer<T> : IEqualityComparer<T>
{
    public bool Equals(T x, T y){/* some implementation*/}
}

questionAnswers(2)

yourAnswerToTheQuestion