Bonjour,
j'ai crée un service windows qui communique avec un client WPF via WCF.
Les 2 parties utilisent une librairie écrite de la manière suivante :
J'ai environ 200 classes qui héritent de B, je ne me suis donc pas amusé à mettre [DataContract] sur chacunes, ni [KnowType(C)] pour chaque type hérité dans la classe B.
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 [DataContract] [KnowType(B)] abstract class A { // du code } [DataContract] abstract class B : A { // du code } class C1 : B { // du code } class C2 : B { // du code } ... class C200 : B { // du code }
Mon service contient entre autre ces lignes :
Quand j'appelle GetList() depuis mon interface WPF, j'ai le message suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 [ServiceContract] [ServiceKnownType(typeof(A))] [ServiceKnownType(typeof(B))] interface IMyService { List<B> GetList(); } class MyService : IMyService { public List<B> GetList() { // du code retournant une liste d'objets C } }
Après plusieurs tests, je suis sur que ce message n'est pas du tout sémantique et que mon problème est bien lié à l'héritage, mais je ne sais pas du tout quoi faire :-/ (en déboguant en pas à pas, GetList() retourne bien le résultat souhaité, l'exception est soulevé lors du transfert de la liste)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 La connexion de socket a été abandonné. Ceci peut être causé par une erreur lors du traitement de votre message, par le dépassement du délai dattente de réception par lhôte distant ou par un problème de ressource réseau sous-jacent. Le délai dattente de socket local était « 00:00:59.2180000 ».
Merci d'avance pour toute aide...
Partager