2010-12-01 3 views
0

何が間違っているのか理解できません。間違い:あなたのDataContractで[OperationContract]属性を持っていない理由: "矛盾したアクセシビリティの戻り値の型 'Library.ServiceReference1.Authorは[]' の方法よりも少ないアクセス可能である 'Library.Funcs.GetAuthorsList()'"WCFサービスと矛盾したアクセシビリティ

//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

があなたのクラスの[DataMemberを]定義されたプロパティは、民間のアクセシビリティレベルを持っていることの問題ではありません動作するはずですこれらのメソッドのプロパティのみを読んで定義した場合は? Authorクラス自体が公開されている場所 –

+0

プライベートプロパティはクライアントで公開されます。 construntorに何か問題があるのでしょうか? – Artem

答えて

1

クラス、私はそれらがServiceContract装飾クラスの外で有効ではないと信じていますか?

あなたの代わりにそれが

[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; 
    } 
}