ObjectDataSource : selectMethod générique
Bonjour,
Je dispose d'une classe qui hérite d'une interface (ITrucDAO) qui elle-même hérite d'une interface générique (IGenDAO) :
Code:
1 2 3
|
public interface ITrucDAO : IGenDAO<Truc>
{} |
L'interface IGenDAO<T> contient la définition :
Code:
1 2
|
IList<T> getAll(String param); |
Une classe TrucDAO implémente l'interface ITrucDAO, et donc la méthode getAll :
Code:
1 2 3
|
IList<Truc> getAll(String param)
{ ... } |
Enfin, dans une page ASPX, j'ai déclaré un ObjectDataSource :
Code:
1 2 3 4 5 6 7 8 9
|
<asp:ObjectDataSource
...
DataObjectTypeName="Truc"
TypeName="ITrucDAO"
SelectMethod="getAll"
OnSelecting="ObjectDataSource1_Selecting"
...
/> |
Dans l'évènement OnSelecting, je spécifie le paramètre param1 pour appeller la méthode getAll.
Le problème survient à l'éxecution, au bind du GridView utilisant le ObjectDataSource :
Citation:
ObjectDataSource 'ObjectDataSource1' n'a pas pu trouver une méthode 'getAll' non générique qui a des paramètres : param1.
Comme, en virant l'interface générique et définissant directement les méthodes dans l'interface ITrucDAO, ça roule, je comprend bien que le problème vienne du fait que getAll est une méthode générique.
Mais quand même, en l'occurence, les définitions sont complétées, et l'implémentation correcte, avec les bons types et tout.
Donc ma question est : puis-je spécifier un paramètre, n'importe quoi pour pouvoir faire en sorte que la méthode n'apaisse pas comme générique, ou suis-obligé de recopier dans une 30aine d'interfaces le code que j'ai écrit dans IGenDAO<T> (où tout mettre à Object, et caster à tour de bras) ?
Merci de votre attention et, j'espère, de vos réponses ;)
COMPLEMENT :
J'ai essayé d'utiliser une liste IList non générique, le problème est le même : c'est le fait que IGenDAO<> est générique et que getAll est défini dedans.