0

我有一个具有这种结构的 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 接口最终可能具有基本接口没有的额外功能,因此我认为以前的结构是错误的。说实话我不知道。

我知道我可能没有很清楚地解释它,实际上这里涉及两个甚至三个问题,但这是最好的表达方式。我想我的三个主要问题如下:

  1. 哪种继承/实现结构最好,为什么?
  2. 在普通类中实现 wcf 服务使用的相同接口会产生任何不良影响(由 wcf 属性引起,即 [ServiceContract]、[OperationContract])。
  3. 覆盖基接口提供的所有方法是否正确?
4

1 回答 1

0

您首先定义的结构很好,您有一个实现接口的接口,并且子接口可以添加不在基础中的新方法。但是,您不需要在子接口中定义基本方法,因为它们都是继承的,所以现在您的子接口将为空。在此模型中,子接口可以具有 WCF 属性。

现在,您是否必须在 WCF 服务中实现所有这些方法?很简单,因为这就是接口的作用——它们定义了必须实现的契约。

于 2012-07-26T10:28:07.587 回答