【发布时间】:2014-07-24 15:44:07
【问题描述】:
我正在尝试通过 Bing 地图 REST 服务获取行车路线。响应似乎正在通过,但是当使用提供的数据协定反序列化为 JSON 时,会引发以下异常:
元素“:item”包含映射到名称“http://schemas.microsoft.com/search/local/ws/rest/v1:Route”的类型的数据。反序列化器不知道映射到此名称的任何类型。考虑使用 DataContractResolver 或将与 'Route' 对应的类型添加到已知类型列表中 - 例如,通过使用 KnownTypeAttribute 属性或将其添加到传递给 DataContractSerializer 的已知类型列表中。
我正在使用的 MSDN 链接位于:http://msdn.microsoft.com/en-us/library/jj819168.aspx
我已从示例底部的链接中复制了必要的 DataContract,但无法弄清楚反序列化时发生异常的原因。这是我正在执行的代码:
private async void btnGetRoute_Click(object sender, RoutedEventArgs e)
{
string locationFrom = "100 Commonwealth Ave Boston MA";
string locationTo = "100 Yawkey Way Boston MA";
string url = string.Format("http://dev.virtualearth.net/REST/V1/Routes/Driving?wp.0={0}&wp.1={1}&key={2}", locationFrom, locationTo, ConfigurationManager.AppSettings["BingMapsKey"]);
Uri drivingRouteRequest = new Uri(url);
Response response = await GetResponse(drivingRouteRequest);
}
private async Task<Response> GetResponse(Uri uri)
{
HttpClient client = new System.Net.Http.HttpClient();
var response = await client.GetAsync(uri);
using (var stream = await response.Content.ReadAsStreamAsync())
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Response));
return ser.ReadObject(stream) as Response;
}
}
有什么想法吗?
【问题讨论】:
-
这方面有什么进展吗?我注意到了同样的问题 [这里][1]。汤姆 [1]:stackoverflow.com/questions/25297238/…
-
@Tom no... 我们使用 Telerik。相反,我能够通过它们获得行车路线。我没有再尝试过这种方法,所以现在无法提供任何进一步的信息。
标签: c# json rest bing-maps bing-api