Bonjour a tous,
Je travaille actuellement sur un projet assez important en terme de nombre de lignes et j'y ai inséré quelques class objet qui ont parfois entre 20 et 50 propriétés.
Comme je travaille sur des bases de données en multi-poste et multi-taches, j'ai donc développé des listes de classe objet que je ne recharge que lors du démarrage ou lorsque la classe a été modifiée, et ce afin d’accéder plus rapidement et sans accès réseau au données très fréquemment utilisées tel que liste de projets, liste d’unités, liste de devises avec taux de change, etc...

Tout marche très bien mais, je cherche a alléger mon code. J'ai donc crée pour ce forum un petit exemple qui ne sert a rien si ce n'est a exposer mon problème.

construction de la classe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
Namespace Lettres
    Module ClassC
        Public Class LConsVoy
            Private m_id As Integer
            Private m_Cons As String
            Private m_Voy As String
            Public Sub New(ID As Integer, Cons As String, Voy As String)
                m_id = ID 'numero d'ordre
                m_Cons = Cons 'consonnes
                m_Voy = Voy 'voyelles
            End Sub
            Public Property ID As Integer
                Get
                    Return m_id
                End Get
                Set(value As Integer)
                    m_id = value
                End Set
            End Property
            Public Property Cons As String
                Get
                    Return m_Cons
                End Get
                Set(value As String)
                    m_Cons = value
                End Set
            End Property
            Public Property Voy As String
                Get
                    Return m_Voy
                End Get
                Set(value As String)
                    m_Voy = value
                End Set
            End Property
        End Class
    End Module
End Namespace
la partie test de la classe

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
Public Class Form1
    Dim LstClasLet As New List(Of Lettres.LConsVoy) 'define a list of class
    Dim tblC() As String = {"B", "C", "D", "F", "G", "H"}
    Dim tblV() As String = {"A", "E", "I", "O", "U", "Y"}
 
    Private Sub LoadList1()
        Dim CL As Lettres.LConsVoy
        For n As Integer = 0 To 5
            CL = New Lettres.LConsVoy(n, tblC(n), tblV(n))
            LstClasLet.Add(New Lettres.ClassC.LConsVoy(CL.ID, CL.Cons, CL.Voy))
        Next
        Dsp
    End Sub
    Private Sub loadlist2()
        Dim CL As Lettres.LConsVoy
        For n As Integer = 0 To 5
            CL = New Lettres.LConsVoy(n, tblC(n), tblV(n))
            'LstClasLet.Add(New Lettres.ClassC.LConsVoy(CL))   *** c'est de cette facon que j'aimeri pouvoir charger ma list d'objets plutot que d'ecrire toutes les proprietes une a une
        Next
        DSP()
    End Sub
    Private Sub DSP()
        Dim Str As String = ""
        For Each C As Lettres.LConsVoy In LstClasLet
            Str = Str & C.ID & " " & C.Cons & " " & C.Voy & vbCrLf
        Next
        MsgBox(Str)
    End Sub
 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        LoadList1()
    End Sub
 
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        loadlist2
    End Sub
End Class
La procédure LoadList1 fonctionne parfaitement mais, si il y a 50 propriétés dans la classe, il faut les écrire une a une.
Je n'arrive pas a faire fonctionner le chargement de la liste de classe en invoquant uniquement la classe (loadlist2). Je comprends bien pourquoi ça merde, je cherche juste a contourner cela sans y parvenir.
J'ai bien entendu retourne le web et les forums sans résultats. Si vous avez un lien ou une idée...
Ou peut être suis complètement parti a l'envers, le but étant de limiter les accès réseau et soulager la BDD et le serveur, peut être y a t'il une autre solution que les listes de class...
Merci a tous.