2011-07-22 12 views
1

可能性の重複:
Passing Interface in a WCF Service?WCFとインタフェース

私はWCFとのインターフェースに関する問題をしました。

私は2つのクラス

public interface ICompany { 
    string Name { get; set; } 
    IAddress Address { get; set; } 
} 
class Company : ICompany { 
    public string Name { get; set; } 
    public IAddress Address { get; set; } 
} 
public interface IAddress { 
    string Road { get; set; } 
} 
class Address: IAddress { 
    string Road { get; set; } 
} 

を持ってきたし、私のサービスが

[OperationContract] 
    Company GetCompany(String name); 

を返しますが、これは動作しません、私は問題は会社クラス内IAddressであると確信しているが、これは何とか解決できないのですか?

+2

「これは動作しません」より詳細を提供できますか?どのようなエラーメッセージが表示されますか?あなたはいつそれを手に入れますか? –

+0

投稿する前に少し調べてみてください。 "wcf interface"を検索するだけで、複製が見つかりました。 –

+0

わかりませんが、アドレス – Polity

答えて

1

あなたのクラスは、として宣言する必要があります。

[DataContract] 
class Company { 
    [DataMember] 
    public string Name { get; set; } 
    [DataMember] 
    public IAddress Address { get; set; } 
} 

とあなたのサービスの宣言として実装する:あなたはこのサービスを利用することができますのみ、その後

[ServiceContract] 
public interface ICompanyService 
{ 
    [OperationContract] 
    Company GetCompany(string name); 
} 

public class CompanyService : ICompanyService 
{ 
    public Company GetCompany(string name) 
    { 
    return new Company { Name = name}; 
    } 
} 

。 そして私はもっと読むことをお勧めしますthat

0

私はすべての前に[DataContract]と[DataMemebr]でクライアントで使用する必要があるクラスをマークする必要があると仮定します。

0

シリアライズ可能なクラスおよびメソッドで[DataContract]および[DataMemebr]属性を使用する必要があります。 WCFは、コンパイラがオブジェクトをシリアル化できるように、XML(ほとんどの場合)に対する応答をシリアル化します。

+0

が正しくありません。 DataContractは必須ではありません:http://stackoverflow.com/questions/5921635/is-datacontract-attributes-required-for-wcf再度、ServiceKnownTypeを使用してください(ただしこれは重複しています) – Polity

+0

@Polity場合によっては必要ない場合があります。それは私の答えが間違っていません – harryovers

+0

私は申し訳ありませんが、このpaticular問題の解決策ではない – Polity

関連する問題