J'implémente une interface générique (iqueryprovider, spécifiquement). à un moment donné, je suis obligé de retourner un résultat générique, que je dois obtenir de une interface interne:restrictions et interfaces variables de type générique
public TResult Execute<TResult>(...) {
return something.Foo<TResult>();
}
où something.Foo est
public T Foo<T>() where T: MyBaseClass, new() {
...
}
Bien sûr, cela explose parce que la TResult défini de l'extérieur n'a pas les mêmes restrictions de type que le T. défini en interne la question: est-il un moyen de rendre TResult acceptable à Foo? puis-je tester de façon explicite pour ces deux conditions et contraindre la variable de type?
* soupir * alors que ça marche, c'est sacrément méchant, surtout dans le code au niveau du framework. – kolosy
J'ai fini par aller de cette façon. Je ne suis pas un fan de la dépendance de la méthode, mais il bat les restrictions, et continue de faire des réflexions sur les autres choses que la méthode interne a fait. – kolosy