Bonjour,

Je développe actuellement une application client/serveur très simple pour échanger des données via le modèle WCF sous Visual C# 2010.

J'arrive pour l'instant à récupérer de simples entiers mais lorsqu'il s'agit de récupérer les données d'une classe DataTable j'obtiens l'erreur suivante :
Error: Une erreur s'est produite en tentant de désérialiser le paramètre http://tempuri.org/:oDataTable. Pour plus d'informations, consultez InnerException.
Le client appelle d'abord la méthode GetTable définie dans mon interface utilisée pour le ServiceContract
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
[OperationContract()]
void GetTable(ref cDataTable oDataTable);
Le serveur de son côté instancie une DataTable et appelle le constructeur de ma classe de données cDataTable :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
DataTable dt = new DataTable("dt name");
oDataTable = new cDataTable(dt);
Voici la définition de ma classe de données cDataTable :

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
[DataContract()]
[KnownType(typeof(DataTable))]
public class cDataTable
{
    private DataTable m_oDataTable;
 
    [DataMember()]
    public DataTable dataTable
    {
        get
        {
            return m_oDataTable;
        }
        set
        {
        }
    }
 
    public cDataTable(DataTable oDataTable)
    {
        m_oDataTable = oDataTable;
    }
}
L'erreur se produit avant même la lecture de données côté client.

Quelle est mon erreur ici ?

Merci par avance.