Since you're using reflection anyways, you could instantiate the generic ChannelFactory class using reflection.
public static object CreateGeneric(Type generic, Type innerType, params object[] args)
{
System.Type specificType = generic.MakeGenericType(new System.Type[] { innerType });
return Activator.CreateInstance(specificType, args);
}
var contract = typeof(ICoolWebService);
var cf = CreateGeneric(typeof(ChannelFactory), contract);
Credit[
^]