我有這種結構的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