Вы можете создать свой собственный вспомогательный класс, который будет вызывать универсальную версию через отражение.
Например, чтобы создать неуниверсальную версию PexChoose.Value(string name)
public static class MyPexChoose
{
public static object Value(Type myType, string name)
{
// Find the PexChoose.Value() method which has a single string parameter
MethodInfo method = typeof(PexChoose).GetMethod("Value", new Type[1] {typeof(string)});
// Make and invoke the generic version of it
MethodInfo generic = method.MakeGenericMethod(myType);
return generic.Invoke(typeof(PexChoose), new object[1] { name });
}
}
Тогда звонок
MyPexChoose(typeof(DateTime), "MyChosen");
эквивалентно
PexChoose<DateTime>("MyChosen");