私は、アプリケーションが起動する前にSpashページに自動的にログインしようとしていますが、以下のコードは動作します。私はブレークポイントを入れて、それはloginDoneが呼び出されていないようです。非常に似たようなコードは、ボタンから起動するとうまく動作します。 Application_Launchingメソッドに特別なものがあります。これは、ダウンロード文字列を取得できないことを意味しますか?すべてが初期化されていない可能性がありますので、動作しませんが、エラーが予想されます。アプリの起動時にファイルをダウンロードする
private void Application_Launching(object sender, LaunchingEventArgs e)
{
done = false;
IsolatedStorageSettings appSettings = IsolatedStorageSettings.ApplicationSettings;
appSettings.Remove("sid");
if (appSettings.Contains("username") && appSettings.Contains("password")) {
WebClient wc = new WebClient();
wc.DownloadStringCompleted += loginDone;
wc.DownloadStringAsync(InkBunnyUrls.Login(appSettings["username"].ToString(), appSettings["password"].ToString()));
for (int i = 0; (i < 60 && !done); i++) {
Thread.Sleep(TimeSpan.FromSeconds(1));
}
}
}
private void loginDone(object sender, DownloadStringCompletedEventArgs e)
{
IsolatedStorageSettings appSettings = IsolatedStorageSettings.ApplicationSettings;
XDocument loginxml = XDocument.Parse(e.Result);
var sid = (loginxml.Descendants("response").Elements("sid")).FirstOrDefault();
if (sid == null || sid.Value.Length < 1) {
appSettings.Add("sid", sid.Value);
}
done = true;
}