我有一个具有这种结构的 C# 解决方案:
- 项目一:包含一个道(可以包含多个)
- 项目2:包含一个接口(只有一个)
项目3:一个自带接口的wcf服务
项目1中的dao实现了项目2中的接口。
- 项目3中的wcf服务接口实现/继承/继承了项目2中的接口。
我遇到的问题是需要项目 2 中的接口来描述我的 dao 类。需要wcf接口来描述我在项目3中的wcf服务中可以使用哪些功能。这两个接口完全一样,除了wcf属性在wcf接口上,因为dao中的所有功能都需要通过wcf 服务文件也是如此。实现或更确切地说是 dao 类可以更改/交换,但必须始终遵循相同的结构,因此需要接口。现在,当我尝试在我的 wcf 接口中实现它时,这两个接口是相同的,我被告知我必须有效地覆盖我派生的接口中的所有方法。这是正确的做法吗?wcf 接口需要实现项目 2 中的接口,以便提供我们需要的 dao 中的所有功能(这就是全部)。
以前我的项目设置如下:
- 项目 1:包含 dao
- 项目 2:也包含一个带有 wcf 属性的接口
- 项目 3:不包含接口,只包含 wcf 服务
dao 和 wcf 服务都实现了与项目 2 相同的接口。将 wcf 属性放在接口上是否会在与 dao 一起使用时产生任何不利影响?我可能遇到的一个问题是 wcf 接口最终可能具有基本接口没有的额外功能,因此我认为以前的结构是错误的。说实话我不知道。
我知道我可能没有很清楚地解释它,实际上这里涉及两个甚至三个问题,但这是最好的表达方式。我想我的三个主要问题如下:
- 哪种继承/实现结构最好,为什么?
- 在普通类中实现 wcf 服务使用的相同接口会产生任何不良影响(由 wcf 属性引起,即 [ServiceContract]、[OperationContract])。
- 覆盖基接口提供的所有方法是否正确?