我試圖通過必應地圖REST服務獲取駕車路線。響應似乎是想通過,但所提供的數據反序列化到JSON當合同後拋出以下異常:必應地圖REST服務JSON反序列化錯誤
元素「:項目」包含映射到名稱爲「http://schemas.microsoft.com/search/local/ws/rest/v1:Route」類型的數據。反序列化器不知道映射到該名稱的任何類型。考慮使用DataContractResolver或將與'Route'相對應的類型添加到已知類型列表中 - 例如,使用KnownTypeAttribute屬性或將其添加到傳遞給DataContractSerializer的已知類型列表中。
的MSDN鏈接我工作過的可在:http://msdn.microsoft.com/en-us/library/jj819168.aspx
我抄從樣品的底部的鏈接必要DataContracts,但無法弄清楚,爲什麼例外是發生當反序列化。這裏是我正在執行的代碼:
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]:http://stackoverflow.com/questions/25297238/bing-rest-api-get-route-from-response-resourcesets – Tom
@湯姆沒有......我們使用Telerik的。相反,我能夠通過他們獲取駕車路線。我還沒有嘗試過這種方法,所以現在不能提供任何進一步的信息。 – Matt