У меня есть приложение .NET Core ASP.NET MVC 6, и я уверен, что это ошибка в Visual Studio. Если я помещаю точку останова после утверждения ожидания, объект не отображается в локалях, и я не могу навести указатель мыши на проверку. Но если я использую переменную, она все равно работает нормально, и она определенно заполнена.переменные async Visual Studio 2015, которые не отображаются в отладчике
Что-то же просто, как это:
public async Task<IActionResult> Index()
{
var location = await _listingLocationService.GetLocationByAddress("123 Fake Street");
return Content(location.Latitude.ToString() + " " +location.Longitude.ToString());
}
Если я устанавливаю точку останова на оператора возврата, я не могу проверять местоположение. Он нигде не появляется. Я даже могу удалить ожидание & место. Результат в конце, и до сих пор ничего не отображается. Но когда я продолжаю, в представлении отображаются location.latitude и location.longitude fine. Поэтому я знаю, что он заселен.
Для полноты я также включу функцию GetLocationByAddress, которая делает то же самое, если я положу точку останова в любом месте после ожидания, я не могу проверить переменные (даже десериализованный список!). ,
public async Task<Geolocation> GetLocationByAddress(string address)
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("https://maps.googleapis.com/maps/api/geocode/json");
var request = new HttpRequestMessage(HttpMethod.Get, "?address=" + WebUtility.UrlEncode(address) + "&key=...");
var response = await client.SendAsync(request);
var contents = await response.Content.ReadAsStringAsync();
var locationResult = JsonConvert.DeserializeObject<GoogleLocationResult>(contents);
if (locationResult.status == "OK")
{
var result = locationResult.results.First().geometry.location;
return new Geolocation
{
Latitude = result.lat,
Longitude = result.lng
};
}
else
{
return null;
}
}
}
Здравствуйте, adam3039, вы нашли какое-либо решение? Или, по крайней мере, это причина? – Vi100