2011-12-27 38 views
3

我正沿着WCF Web API chm文件的.6發行版。當我通過IE訪問它時,我已經構建了我的服務,並且一切正常。但是當我創建我的控制檯應用程序時,我不明白客戶端如何知道「聯繫」類型。當然,我可以添加一個參考,但世界上的其他客戶如何知道這些類型?WCF WebAPI客戶端不知道服務器類型

List<Contact> contacts = resp.Content.ReadAs<List<Contact>>(); 

客戶如何知道Contact類的更改?謝謝。

回答

1

您的客戶端類型中與響應類型中的屬性(名稱/類型)匹配的每個屬性均由ReadAs <T>映射。

如果在響應類型和客戶端類型上有字符串屬性「名稱」,則會分析其值。

您不需要參考。

更新:如果您不想在客戶端聯繫人類型的工作,你可以嘗試這樣的事:

var json = JsonValue.Parse(response.Content.ReadAsStringAsync().Result); 

如果接觸式服務器端有一個「名稱」屬性你應該能夠做到以下幾點:

var name = json["Name"]; 

(假設你的反應是一個單一的接觸 - 在列表<聯繫>「JSON」是類型JsonArray的情況下 - 你應該得到一個線索... here是顯示使用情況的示例JsonValue和JsonArray)。

關於「接觸式的變化」,請閱讀this

+0

我不明白客戶如何知道「聯繫」類型。所以我仍然需要在我的客戶端應用程序中定義的Contact類正確嗎? – Terrence

+0

更新了我的答案 –

+0

感謝您的幫助亞歷山大。 – Terrence

3

使用基於SOAP的WCF綁定,客戶端通常會從WSDL生成客戶端,這將指定這些自定義類型。

不過據我所知,在基於REST的Web API世界中,沒有這樣做的功能。期望第三方客戶/程序員以客戶的身份以其他形式獲得數據合同,並製作兼容的類。

換句話說,沒有一種真正的自動方式來做到這一點。

相關問題