2009-10-22 9 views
8

私は、IAddressと呼ばれるインターフェースと、住所と呼ばれる街、都道府県、都道府県、郵便番号、国を扱うクラスを持っています。私はすべてのアドレス情報を持ってインターフェイスIAddressを実装し、プロパティ値をロードするAddressのコンストラクタに渡したいLinq2Sqlクラスをいくつか持っています。Linq2Sqlクラスにインターフェイスを実装できますか?

Linq2Sqlクラスのimpmentを作成し、作成した部分クラスを介してインターフェイスすることは可能ですか?前もって感謝します!私のクラスで

追加コメント

私はMailToStreetというプロパティを持って、私はそれがIAddress.Streetにマップします。部分クラスでこれを行う方法はありますか?

おかげStackOverflowのコミュニティを解決します!それはスナップでした!ここに私の最終的なコードは次のとおりです。

public partial class Location : IAddress 
{ 
    string IAddress.Street 
    { 
     get { return this.Street; } 
     set { this.Street = value; } 
    } 

    string IAddress.City 
    { 
     get { return this.City; } 
     set { this.City = value; } 
    } 

    string IAddress.StateProvince 
    { 
     get { return this.StateProvince; } 
     set { this.StateProvince = value; } 
    } 

    string IAddress.PostalCode 
    { 
     get { return this.PostalCode; } 
     set { this.PostalCode = value; } 
    } 

    string IAddress.Country 
    { 
     get { return this.Country; } 
     set { this.Country = value; } 
    } 
} 
+0

(オブジェクトがそのインターフェイスにキャストされていない限り、それは見えなくなります)のみのインターフェイスを実装するために使用冗長プロパティは表示されませんメンバー名はエンティティクラスのプロパティ名と同じですが、これで十分です:p ublic partial class場所:IAddress {} –

答えて

13

LinqToSQLクラスは、部分クラスなので、あなたはLinqToSQLクラスのインターフェイスを実装し、追加のファイルを持つことができます。

ちょうどあなたのLinqToSQLクラスと同じクラス名を使用して、新しいファイルに以下を追加:

public partial class LinqToSqlClass : IFoo { 
    public void Foo() { 
     // implementation 
    } 
} 

あなたLinqToSQLクラスは、すでにあなたが唯一のインターフェイス宣言を含めることができる必要があり、必要なproportiesを実装している場合。

異なる名前のLinqToSQLプロパティを使用してインターフェイスを実装する方法についてのコメントには、上記の構文を使用してインターフェイスプロパティからLinqToSQLプロパティを呼び出すか、物事を少しきれいに保つために明示的な実装を使用できます。この構文を使用することにより

public partial class LinqToSqlClass : IFoo { 
    void IFoo.Foo() { 
     return this.LinqFoo(); // assumes LinqFoo is in the linq to sql mapping 
    } 
} 

、あなたのクラスにアクセスするクライアントは、すべてのインターフェースことを考えると

+0

私のクラスでは、MailToStreetというプロパティがあります。IAddress.Streetにマップする必要があります。部分クラスでこれを行う方法はありますか? – mattruma

+2

あなたのMailToStreetプロパティを、あなたの部分クラスの新しいStreetプロパティでラップしてください...それはトリックを行います; o) –

+0

これはうまくいきました!これは簡単だろうと分かっていたはずです! – mattruma