2011-07-04 134 views
0

我在同一個解決方案中創建了兩個項目。第一個項目有一個班級,我們稱之爲「班級A」。第二個項目是一個WCF服務庫。該WCF服務引用了來自該解決方案的 項目,因此它可以使用第一個解決方案中定義的類型「A」。自定義類型的WCF問題

現在,問題是,當我從第一個項目(普通C#項目)引用wcf服務時,在對象瀏覽器中,我看到必須返回類型「A」的wcf服務方法,只返回「object 「型!如果我將自定義類定義爲WCF項目的一部分,它將被識別爲返回類型。

如何讓項目1(定義類型「A」)使用WCF項目並識別他自己的類型?

+0

你混合起來的話解決方案和項目。你必須在這個問題上更加精確。並且還要更好地描述設置。客戶端和服務器之間是否共享類型(程序集)? –

+0

一個解決方案包含兩個項目 - 客戶端應用程序(客戶端項目)和服務器應用程序(wcf項目)。 WCF項目必須使用在客戶端項目中定義的類型(同一解決方案的一部分),並且沒關係,但是當這些類型必須提供給客戶端應用程序(在同一個解決方案中,定義了使用的類型時,這些類型被識別爲「目的」。不知道如何描述它更好:) – guest86

+1

客戶端應用程序定義了服務公開的類型?那味道。 –

回答

1

您可能必須使用[KnownType]來標記您的DataContracts。

在獨立程序集(Project)中隔離這些共享類型是一個(非常好的)主意。

0

如果您是服務的唯一消費者,是一個.NET應用程序,那麼它可能是值得使用NetDataContractSerailizer這種方式,您可以通過共享的類型信息,你不需要用[KnownType]

來標記你的對象

在這裏看到更好的解釋http://www.pluralsight-training.net/community/blogs/aaron/archive/2006/04/21/22284.aspx

心連心

+0

我的代碼問題是我試圖使用接口與WCF進行通信(整個項目1使用接口作爲函數參數類型和返回類型)。現在,我意識到我不能以這種方式使用接口,但是當我使用項目1中的類與wcf進行通信時,該類(在對象瀏覽器中)被描述爲「WCFProject類」,而不是屬於「Project1」 ! – guest86

相關問題