estoy implementando una interfaz genérica (iqueryprovider, específicamente). en algún momento, me veo obligado a devolver un resultado genérico, lo que necesito para llegar de alguna de las interfaces internas:restricciones variables de tipo genérico e interfaces
public TResult Execute<TResult>(...) {
return something.Foo<TResult>();
}
donde something.Foo es
public T Foo<T>() where T: MyBaseClass, new() {
...
}
esto por supuesto hace saltar porque el TResult definido externamente no tiene las mismas restricciones de tipo que la pregunta de T. internamente definida: ¿hay alguna manera de hacer que TResult sea aceptable para Foo? ¿Puedo de alguna manera probar de forma explícita esas dos condiciones y forzar la variable de tipo?
* suspiro * mientras que eso funciona, eso es muy desagradable, especialmente en el código de nivel de marco. – kolosy
terminé yendo por este camino. No soy partidario de la suave dependencia del método, pero supera las restricciones y sigue haciendo llamadas de reflexión sobre algunas de las otras cosas que hizo el método interno. – kolosy