我有一个名为IAddress的接口,以及一个名为Address的类,用于处理街道,城市,州/省,邮政编码和国家/地区。我有几个Linq2Sql类,它们具有所有地址信息,并希望实现接口IAddress,并将其传递给Address的构造函数,以加载属性值。
是否可能通过我为其创建的分部类具有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 :(得分:13)
LinqToSQL类是部分类,因此您可以拥有一个实现LinqToSQL类接口的附加文件。
只需将其添加到新文件中,使用与LinqToSQL类相同的类名:
public partial class LinqToSqlClass : IFoo {
public void Foo() {
// implementation
}
}
如果您的LinqToSQL类已经实现了必要的比例,那么您应该只能包含接口声明。
要回答关于使用不同命名的LinqToSQL属性来实现接口的注释,您可以使用上面的语法,只需从接口属性调用LinqToSQL属性,或者为了使事情更清晰,使用显式实现: / p>
public partial class LinqToSqlClass : IFoo {
void IFoo.Foo() {
return this.LinqFoo(); // assumes LinqFoo is in the linq to sql mapping
}
}
通过使用此语法,访问您的类的客户端将看不到仅用于实现接口的冗余属性(除非将对象强制转换为该接口,否则它将是不可见的)