public void FindCityName()
{
string url = "http://maps.google.com/maps/geo?q=39.920794,32.853902&output=json&oe=utf8&sensor=true&key=MYKEY";
var w = new WebClient();
Observable.FromEvent<DownloadStringCompletedEventArgs>(w, "DownloadStringCompleted").Subscribe(r =>
{
var deserialized = JsonConvert.DeserializeObject<RootObject>(r.EventArgs.Result);
string s = deserialized.Placemark[0].AddressDetails.Country.SubAdministrativeArea.Locality.LocalityName;
/// setCity() and City=s produce the same thing
setCity(s);
City = s;
//foreach (var item in deserialized.Placemark)
//{
// //MessageBox.Show(item.AddressDetails.Country.SubAdministrativeArea.Locality.LocalityName);
// City = (string)item.AddressDetails.Country.SubAdministrativeArea.Locality.LocalityName;
//}
//Problem here >>>>>
////MessageBox.Show(City);
});
w.DownloadStringAsync(new Uri(url));
}
問題:
私はWindows Phone 7アプリケーションに取り組んでおり、先に進むためにGPS座標から「都市名」を見つける必要があります...
上記のコードをインターネットで見つけて試してみました。これらのコードを使用して都市名を確認できます (Message.Box(City) は、必要なもの、都市名を正確に表示します)。ただし、このコード行
deserialized.Placemark[0].AddressDetails.Country.SubAdministrativeArea.Locality.LocalityName;
これにより、都市名が揮発性の文字列値を与えるようです。
たとえば、City という名前のクラスの文字列フィールドに文字列変数 "s" の値を割り当てるメソッドを作成しました。FindCityName() メソッドを呼び出した後に City のコンテンツを取得しようとすると、City のコンテンツが更新されていないことがわかります。
繰り返しますが、同じことが起こり、MessageBox.Show(City) が何も新しいことを示していないというコメント「ここで問題 >>>>>」の下にあるコード行を呼び出します...
誰かが私の問題の理由を説明できますか?