2010-12-01 6 views
0

Je ne peux pas comprendre ce qui ne va pas. Erreur: "l'accessibilité Incohérence: type de retour 'Library.ServiceReference1.Author []' est moins accessible que la méthode 'Library.Funcs.GetAuthorsList()'"Service WCF et accessibilité incohérente

//class in DLL  
[DataContract] 
public class Author 
{ 
    [DataMember] 
    private string FN, N, P; 
    [OperationContract] 
    public string GetFamilyName() 
    { 
     return FN; 
    } 
    [OperationContract] 
    public string Name() 
    { 
     return N; 
    } 
    [OperationContract] 
    public string Patronymic() 
    { 
     return P; 
    } 
    public Author(string familyName, string name, string patronymic) 
    { 
     FN = familyName; 
     N = name; 
     P = patronymic; 
    } 
} 
//in service 
public Author[] GetAuthorsList() 
    { 
     return DB.Singleton.GetAuthorsList().ToArray(); 
    } 
+0

est pas la question que les propriétés définies [DataMember] sur votre classe ont le niveau de accesibility privé? Où la classe Auteur est elle-même publique. –

+0

Les propriétés privées deviennent publiques sur le client. Peut-être que quelque chose ne va pas avec construntor? – Artem

Répondre

1

Pourquoi avez-vous [OperationContract] attributs dans votre DataContract classe, je crois que ceux-ci ne sont pas valables en dehors d'une classe décorée ServiceContract?

Si vous définissez lire seulement des propriétés au lieu de ces méthodes, il devrait fonctionner

[DataContract] 
public class Author 
{ 
    [DataMember] 
    private string FN, N, P; 

    public string FamilyName 
    { 
     get { return FN; } 
    } 

    public string Name 
    { 
     get { return N; } 
    } 

    public string Patronymic 
    { 
     get { return P; } 
    } 

    public Author(string familyName, string name, string patronymic) 
    { 
     FN = familyName; 
     N = name; 
     P = patronymic; 
    } 
} 
Questions connexes