Bonjour,

Je suis entrain de développer un WS qui a comme but de renvoyer une collection d'objet.

Voici ma classe de base : class Evenement (grossomodo une plage dans un planning)
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
 
Public Class Evenement
 
    Private vId As Integer
    Private vClasse_id As Integer
    Private vMatiere_id As Integer
    Private vEspace_id As Integer
    Private vUser_id As Integer
    Private vCampus_id As Integer
    Private vDateDebut As Date
    Private vDateFin As Date
    Private vAffichageObligatoire As Boolean
    Private vLibelle As String
    Private vCategorie As String
 
    Sub New(ByVal id As Integer, ByVal classe_id As Integer, ByVal matiere_id As Integer, ByVal espace_id As Integer, ByVal user_id As Integer, ByVal campus_id As Integer, ByVal dateDebut As Date, ByVal dateFin As Date, ByVal affichageObligatoire As Boolean, ByVal libelle As String, ByVal categorie As String)
        vId = id
        vClasse_id = classe_id
        vMatiere_id = matiere_id
        vEspace_id = espace_id
        vUser_id = user_id
        vCampus_id = campus_id
        vDateDebut = dateDebut
        vDateFin = dateFin
        vAffichageObligatoire = affichageObligatoire
        vLibelle = libelle
        vCategorie = categorie
    End Sub
 
    Sub New()
 
    End Sub
 
    Public Property Id() As Integer
        Get
            Return vId
        End Get
        Set(ByVal Value As Integer)
            vId = Value
        End Set
    End Property
 
    Public Property Classe_id() As Integer
        Get
            Return vClasse_id
        End Get
        Set(ByVal Value As Integer)
            vClasse_id = Value
        End Set
    End Property
 
    Public Property Matiere_id() As Integer
        Get
            Return vMatiere_id
        End Get
        Set(ByVal Value As Integer)
            vMatiere_id = Value
        End Set
    End Property
 
    Public Property Espace_id() As Integer
        Get
            Return vEspace_id
        End Get
        Set(ByVal Value As Integer)
            vEspace_id = Value
        End Set
    End Property
 
    Public Property User_id() As Integer
        Get
            Return vUser_id
        End Get
        Set(ByVal Value As Integer)
            vUser_id = Value
        End Set
    End Property
 
    Public Property Campus_id() As Integer
        Get
            Return vCampus_id
        End Get
        Set(ByVal Value As Integer)
            vCampus_id = Value
        End Set
    End Property
 
    Public Property DateDebut() As Date
        Get
            Return vDateDebut
        End Get
        Set(ByVal Value As Date)
            vDateDebut = Value
        End Set
    End Property
 
    Public Property DateFin() As Date
        Get
            Return vDateFin
        End Get
        Set(ByVal Value As Date)
            vDateFin = Value
        End Set
    End Property
 
    Public Property AffichageObligatoire() As Boolean
        Get
            Return vAffichageObligatoire
        End Get
        Set(ByVal Value As Boolean)
            vAffichageObligatoire = Value
        End Set
    End Property
 
    Public Property Libelle() As String
        Get
            Return vLibelle
        End Get
        Set(ByVal Value As String)
            vLibelle = Value
        End Set
    End Property
 
    Public Property Categorie() As String
        Get
            Return vCategorie
        End Get
        Set(ByVal Value As String)
            vCategorie = Value
        End Set
    End Property
 
 
 
End Class
Ma class Evenements (qui représente une collection d'Evenement, c'est cette classe que je veux envoyer via le WS)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
Public Class Evenements
 
    Private vCollection As Collection
 
    Sub New()
        vCollection = New Collection()
    End Sub
 
    Public Sub add(ByVal even As Evenement)
        vCollection.Add(even)
    End Sub
 
End Class
Enfin ma web méthode qui remplie mon objet Evenements d'Evenement puis le retourne, pour l'exemple j'ai rempli à la main ma collection, la finalité sera de les récupérer en base mai là n'est pas le soucis.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
    <WebMethod()> _
    Public Function GetEvent(ByVal id As Integer, ByVal pass As String) As Evenements
        Dim events As Evenements = New Evenements()
 
        events.add(New Evenement(1, Nothing, Nothing, Nothing, 1, 1, Now, DateAdd("h", 3, Now), True, "Test WebService", "personal"))
        events.add(New Evenement(1, Nothing, Nothing, Nothing, 1, 1, Now, DateAdd("h", 3, Now), True, "Test WebService 1", "personal"))
        events.add(New Evenement(1, Nothing, Nothing, Nothing, 1, 1, Now, DateAdd("h", 3, Now), True, "Test WebService 2", "personal"))
 
        Return events
    End Function
je n'ai aucune erreur lors de la compilation et j'obtiens ceci comme résultat:



C'est à dire objet vide.

En mode débug j'ai bien vérifier que ma collection se remplie.

Je pense que le problème viens du fait que ma classe Evenements n'est pas Sérializable mais mes connaissances en WS s'arrête là.

Si vous avez une piste?

D'avance merci beaucoup.