你可以实现一个LINQ2SQL类的接口?(Can you implement an interfac

2019-08-31 12:50发布

我有一个名为IAddress的接口,以及一个处理街道,城市,州/省,邮政编码和国家一类叫做地址。 我有一对夫妇LINQ2SQL类具有所有的地址信息,并希望实现该接口IAddress,并把它传递给构造函数的地址将负载的属性值。

是否有可能必须通过我为它创建了局部类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; }
    }
}

Answer 1:

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

通过使用这种语法,客户端访问你的类不会看到仅用于实现一个接口冗余特性(这将是无形的,除非对象被映射到该接口)



文章来源: Can you implement an interface on a Linq2Sql class?