.NET Core ASP.NET MVC 6アプリケーションがあり、Visual Studioのバグがあると確信しています。私がawait文の後にブレークポイントを置くと、オブジェクトはローカルには現れず、マウスを使って検査することはできません。しかし、私が変数を使用しても、それでも正常に動作し、確実に実装されます。このような単純なVisual Studio 2015の非同期変数がデバッガに表示されない
何か:
public async Task<IActionResult> Index()
{
var location = await _listingLocationService.GetLocationByAddress("123 Fake Street");
return Content(location.Latitude.ToString() + " " +location.Longitude.ToString());
}
私はreturn文にブレークポイントを配置した場合、私は場所を検査することはできません。それはどこにも現れません。私はまだ待つことを取り除くことができます&場所。最後には結果、まだ何も表示されません。しかし、私が続行すると、ビューにはlocation.latitudeとlocation.longitudeが表示されます。だから私はそれが人口になっていることを知っています。
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