WCF WebAPI客户端不了解服务器类型。

3

我正在使用WCF Web API .6版本的chm文件进行学习。我已经构建好了我的服务,当我通过IE访问时一切都正常。但是当我创建控制台应用程序时,我不明白客户端如何知道“contact”类型。当然,我可以添加引用,但是世界上的其他客户端如何知道这些类型呢?

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

客户端如何知道联系人类(Contact class)的更改?谢谢。
2个回答

3
使用基于SOAP的WCF绑定,客户端通常会从WSDL生成客户端,其中指定了这些自定义类型。
然而,据我所知,在Web API的基于REST的世界中,没有这样的设施。预计第三方客户/程序员将以其他形式获得数据合同,并创建兼容的类。
换句话说,实际上没有自动执行此操作的方法。

1

客户端类型中与响应类型中的属性(名称/类型)匹配的每个属性都由ReadAs<T>进行映射。

如果响应类型和客户端类型都有一个字符串属性“Name”,它的值将被解析。

您不需要引用。

更新:如果您不想在客户端侧使用联系人类型,可以尝试类似于这样的东西:

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

如果您在服务器端的联系类型中有一个属性“名称”,则应该能够执行以下操作:
var name = json["Name"];

假设您的响应是单个联系人 - 如果是List<Contact>,“json”将是JsonArray类型 - 您应该得到一个提示... 这里 是一个显示JsonValue和JsonArray使用的示例。

关于“联系人类型更改”,请阅读此处


我不明白客户端如何知道“联系人”类型。因此,我的客户端应用程序仍需要定义一个联系人类,对吗? - Terrence

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接