2012-12-20 66 views
0

我有一個類實現一些審計方法(AuditcClass.cs)。我也實現了一個使用AuditcClass.dll方法的WCF服務。Instance代理WCF服務引用相同的instanciating類

現在我需要也能夠從AuditcClass中引用WCF服務。但是我不能簡單地使用生成的代理來引用它,因爲與命名空間有幾處衝突。

作爲第一種方法,我將代理封裝在另一個名稱空間中,解決了許多衝突,但仍然與其他常規類(例如,Exceptions名稱空間)一起引入新代碼。

即使服務使用相同類的方法和枚舉,我是否可以引用類中的Web服務?

+0

我覺得你的設計不正確,因爲它引入了一些循環依賴關係。這可以使用一些模式來解決,例如IoC或依賴注入。也許你可能會更多地描述你的課堂,並且依賴它們。 –

+0

@Steve B:優先權。場景:我提供了一個用於審計的DLL。它調用存儲過程將項目存儲在數據庫中。現在我們需要提供調用WCF服務的可能性,以便間接地將項目存儲到數據庫(通過服務)。服務本身引用了aufit DLL,因爲它需要公開/執行相同的審計方法。我同意你的看法,有一種參考循環。 – Francesco

回答

0

我能夠通過使用svcutil工具的參數/reference:<file path>解決我的問題:

References types in the specified assembly. When generating clients, use this option to specify assemblies that might contain types that represent the metadata being imported.

這讓我從生成的代理排除共享DLL避免引用衝突。