Cela veut dire que tu peux passer un "type de classe" en paramètre et récupérer une instance de ce "type".
Du genre
FABRIQUE
DAL
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Public Shared Function FabriqueClasse(Of T As {New})() As T Return New T End Function
Appel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Public Function GetSingleDTO(Of T As {New})(ByVal Requete As String) As DTOBase Dim Reader As DbDataReader Dim parser As Object ' obligatoirement en objet, sinon si de type T => méthodes populate non connues Try If ExecuterReader(Requete, Reader) = 0 Then If Reader.HasRows Then Reader.Read() parser = DTOParserFactory.FabriqueClasse(Of T)() parser.PopulateOrdinals(Reader) Return parser.PopulateDTO(Reader) '...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Public Function GetPersonId(ByVal PersonId As String) As PersonDTO Const K_REQUETTE As String = "select * from personnes where PersonId = ?" Try DALApp.AjouteParam("PersonId", DbType.String, PersonId) Return DALApp.GetSingleDTO(Of DTOParser_Person)(K_REQUETTE)
Partager