使用WP7消费WCF Rest服务

3
我有一个WCF Restful服务,返回JSON对象,我的iPhone和Android应用程序可以很好地使用。这是我第一次尝试构建这样的东西,因为我的背景是C#和VS2010,所以我把WP7放在最后。但似乎这不会像我猜测的那么简单。
所以我想我有三个问题:
1. 我能在WP7中使用JSON对象吗?如果可以,有没有人知道教程? 2. 如果不能,在现有服务的基础上,我能否构建一些新的合同以供WP7使用?或者, 3. 我需要构建一个全新的服务吗?
选项一最理想,但无论如何,我都需要为所有三个操作系统开发,所以有人知道将这一切集成在一起的最佳模型吗? 谢谢,
迈克。
3个回答

2
  1. 是的,但不是使用你可能在WCF中使用的通道工厂/代理编程模型。REST服务通常使用一些更简单的类(例如WebClient)进行消费。然后,您可以使用JSON库(DataContractJsonSerializer位于WP7配置文件中),对接收到的数据进行反序列化。即使是无类型的JSON(来自Silverlight上的System.Json.dll的System.Json类),虽然不是官方配置文件中的一部分,但它们在WP7上也可以工作(我看过一些人在WP7项目中只引用SL库)。

  2. 如果您需要代理支持,可以使用BasicHttpBinding向服务添加新的终结点,该绑定在WP7中受支持;如果您不需要它,请参见1)。

  3. 不行。请参见1)和2)。


0

0

尝试使用以下方法反序列化JSON对象:

public static T Deserialize<T>(string strData) where T : class
{
    DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
    byte[] byteArray = Encoding.UTF8.GetBytes(strData);
    MemoryStream memoryStream = new MemoryStream(byteArray);
    T tRet = serializer.ReadObject(memoryStream) as T;
    memoryStream.Dispose();
    return tRet;
}

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