我正沿着WCF Web API chm文件的.6發行版。當我通過IE訪問它時,我已經構建了我的服務,並且一切正常。但是當我創建我的控制檯應用程序時,我不明白客戶端如何知道「聯繫」類型。當然,我可以添加一個參考,但世界上的其他客戶如何知道這些類型?WCF WebAPI客戶端不知道服務器類型
List<Contact> contacts = resp.Content.ReadAs<List<Contact>>();
客戶如何知道Contact類的更改?謝謝。
我正沿着WCF Web API chm文件的.6發行版。當我通過IE訪問它時,我已經構建了我的服務,並且一切正常。但是當我創建我的控制檯應用程序時,我不明白客戶端如何知道「聯繫」類型。當然,我可以添加一個參考,但世界上的其他客戶如何知道這些類型?WCF WebAPI客戶端不知道服務器類型
List<Contact> contacts = resp.Content.ReadAs<List<Contact>>();
客戶如何知道Contact類的更改?謝謝。
您的客戶端類型中與響應類型中的屬性(名稱/類型)匹配的每個屬性均由ReadAs <T>映射。
如果在響應類型和客戶端類型上有字符串屬性「名稱」,則會分析其值。
您不需要參考。
更新:如果您不想在客戶端聯繫人類型的工作,你可以嘗試這樣的事:
var json = JsonValue.Parse(response.Content.ReadAsStringAsync().Result);
如果接觸式服務器端有一個「名稱」屬性你應該能夠做到以下幾點:
var name = json["Name"];
(假設你的反應是一個單一的接觸 - 在列表<聯繫>「JSON」是類型JsonArray的情況下 - 你應該得到一個線索... here是顯示使用情況的示例JsonValue和JsonArray)。
關於「接觸式的變化」,請閱讀this。
使用基於SOAP的WCF綁定,客戶端通常會從WSDL生成客戶端,這將指定這些自定義類型。
不過據我所知,在基於REST的Web API世界中,沒有這樣做的功能。期望第三方客戶/程序員以客戶的身份以其他形式獲得數據合同,並製作兼容的類。
換句話說,沒有一種真正的自動方式來做到這一點。
我不明白客戶如何知道「聯繫」類型。所以我仍然需要在我的客戶端應用程序中定義的Contact類正確嗎? – Terrence
更新了我的答案 –
感謝您的幫助亞歷山大。 – Terrence