我有这种结构的C#溶液:C#:接口执行结构和重写
- 项目1:包含一个道(可以含有多于一个)
- 项目2:包含一个接口(只有一个)
项目3:拥有自己的界面WCF服务
项目1的DAO实现了项目的界面2.
- 项目3个实现了WCF服务接口/继承/ entends我的问题是,在项目2接口需要来形容我的DAO类(收费)项目2
接口。需要使用wcf接口来描述项目3中我的wcf服务中可用的功能。除wcf接口上的wcf属性外,两个接口完全相同,因为dao中的所有功能都需要公开也是wcf服务文件。实现或者说dao类可以被更改/换出,但必须始终遵循相同的结构,因此需要一个接口。现在,当我尝试在我的wcf接口中实现它时,这两个接口是相同的,我被告知我必须有效地覆盖所有接口的方法。这是正确的事情吗? wcf接口需要实现项目2中的接口,以便它提供我们所需的所有功能(这些都是它们)。
以前我曾在项目设置如下:
- 项目1:包含DAO
- 项目2:包含与WCF 属性以及
- 项目3接口:不包含接口但只是wcf 服务
dao和wcf服务都实现了与项目2相同的接口。是否havi使用dao时,界面上的wcf属性有什么不利影响?我可能会遇到的一个问题是,wcf接口最终可能会有基础接口不具备的额外功能,所以我认为这种以前的结构会出错。真相被告知我不知道。
我知道我可能不会很清楚地解释它,实际上有两个甚至三个问题涉及到,但它是最好的方式。我想我的三个主要问题如下:
- 哪个继承/实现结构将是最好的,为什么?
- 实施与普通类 普通类中的wcf服务所使用的接口相同的接口有任何不良影响(由wcf属性([ServiceContract],[OperationContract])引起)。
- 覆盖所有由基本接口提供的方法是否为 正确?
为什么dao正在实现接口?你可以从中获得什么好处,实现相同的界面。由于恕我直言的界面是旨在遵守某些商业逻辑的合同,而不是完全的数据访问。 – 2012-07-26 10:22:34
因为我想要一个接口来描述一个特定类型的dao和它应该有的方法。这只是接口的简单编程。我可能有多个实现这个接口的dao,我希望他们都定义具有相同的方法,这将使它们可以互换,以便wcf服务可以以统一的方式访问它们,而不管使用哪个dao。我将使用IClusterQueryService foo = new MyDao(),其中MyDao实现接口。这意味着只要它实现了IClusterQueryService接口,我就可以使用任何道。 – CSharpened 2012-07-26 10:26:00
同意100%,但我的问题是为什么DAO具有与业务作为WCF服务公开外接界面相同的接口,这两个不应该不同吗? – 2012-07-26 10:44:12