2009-10-22 12 views
8

IAddress adında bir arabirim ve cadde, şehir, eyalet/bölge, posta kodu ve ülke işleyen Adres adlı bir sınıf var. Tüm adres bilgisine sahip olan ve IAddress arabirimini uygulamak ve bunu, özellik değerlerini yükleyecek olan Adres için yapıcıya iletmek isteyen bir dizi Linq2Sql sınıfım var.Linq2Sql sınıfında bir arabirim uygulayabilir misiniz?

Bunun için oluşturduğum kısmi sınıf aracılığıyla bir Linq2Sql sınıf yolu ve arabirimi var mı? Şimdiden teşekkürler!

Ek açıklamalar Benim sınıfımda

Ben MailToStreet adlı bir özellik var, bunu IAddress.Street eşlemek istediğiniz. Kısmi sınıfta bunu yapmanın bir yolu var mı?

Thanks StackOverflow topluluk çözüldü! Bu bir çırpındı! İşte benim son kodudur:

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

Verilen (nesne bu arabirime döküm sürece görünmez olacaktır), arabirim uygulama sadece kullanılan yedekli özelliğini görmez hepsi arayüzü üye isimleri, varlık sınıfındaki özellik isimleriyle aynıdır, bu yeterli olmalıdır: p ublic kısmi sınıf Konum: IAddress {} –

cevap

13

LinqToSQL sınıfları kısmi sınıfları, bu yüzden LinqToSQL sınıf için arabirimini uygulayan bir ek dosyasına sahip olabilir.

Sadece LinqToSQL sınıfla aynı sınıf adını kullanarak yeni bir dosyaya bu ekleyin:

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

sizin LinqToSQL sınıf zaten mümkün olmalıdır gerekli yönleri ise yalnızca uygulayan arayüz beyanı bulunmaktadır.

Arabirimi uygulamak için farklı adlandırılmış bir LinqToSQL özelliğini kullanma hakkındaki yorumu yanıtlamak için yukarıdaki sözdizimini kullanabilir ve arabirim özelliğinden LinqToSQL özelliğini çağırabilir veya işleri biraz daha temiz tutabilmek için açık uygulamayı kullanabilirsiniz:

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

bu sözdizimini kullanarak, sınıf erişen istemcilerin

+0

Sınıfımda MailToStreet adlı bir mülküm var, IAddress.Street ile eşlemek istiyorum. Kısmi sınıfta bunu yapmanın bir yolu var mı? – mattruma

+2

MailToStreet özelliğinizi kısmi sınıfınızda yepyeni bir Street özelliğiyle sarın ... hile yapacaktır; o) –

+0

Bu işe yaradı! Bu basit olurdu düşünmüş olmalı! – mattruma