2010-10-25 3 views
0

J'ai développé quelques services Web de base utilisant WCF. Jusqu'à présent, les types de retour ont été assez simples. Voici les contrats de fonctionnement qui fonctionnent correctement:Complexité des types de services Web

[OperationContract] 
string Vessel(int ID); 

//lists all vessel 
[OperationContract] 
List<string> Vessels(); 

[OperationContract] 
List<string> PortsLike(string LikeStr); 

[OperationContract] 
Port GetPort(string name); 

Ceux-ci ont fonctionné magnifiquement. J'ai maintenant essayé de pousser l'enveloppe un peu et essayé les suivantes:

[OperationContract] 
List<Pair> Vessels(List<string> fields, List<Criterion> criteria); 

Où Paire et Criterion sont des classes assez basique que je définis.

malheureusement cette dernière opération ne compile pas. Est-ce parce que j'ai atteint les limites de ce qui peut être accommodé par les services Web ou est-ce que je fais quelque chose qui ne va pas?

Voici les définitions de patinage en couple et Critère:

[DataContract] 
public class Criterion 
{ 
    [DataMember] 
    public string Key { get; set; } 
    [DataMember] 
    public string Operator { get; set; } 
    [DataMember] 
    public string Value { get; set; } 
} 

[DataContract] 
public class Pair 
{ 
    [DataMember] 
    public string Key { get; set; } 

    [DataMember] 
    public string Value { get; set; } 

    public Pair(string key, string value) 
    { 
     this.Key = key; 
     this.Value = Value; 
    } 
} 

Voici l'erreur que je reçois du compilateur:

Erreur 1 « VOps.VOpsService » ne membre d'interface implémente pas « VOP .IVOpsService.Vessels (System.Collections.Generic.List, System.Collections.Generic.List) '. 'VOps.VOpsService.Vessels (System.Collections.Generic.List, System.Collections.Generic.List)' ne peut pas implémenter un membre d'interface car il n'est pas public.

+0

Ìt ne compile pas .... et vous ne nous dites pas l'erreur? Agréable. – TomTom

+0

Question mise à jour – Ren

Répondre

0

Vous ne devriez pas avoir [DataMember] sur le constructeur Paire

+0

En outre, quel est le message d'erreur exact que vous obtenez? –

+0

se référer au commentaire ci-dessus, n'a pas fonctionné sans constructeur décorateur – Ren

0

Je ne déclare la mise en œuvre de service en tant que public.