2012-03-22 8 views
0

webserviceを使用してxaml.csファイルにユーザ名を取得しているウィンドウの電話機7.1アプリケーションを作成しようとしています。さて、私はスケジュールされたタスクエージェント(バックグラウンドプロセス)にそのユーザー名にアクセスする必要があります。私が変数値を格納するためにPhoneApplicationService.Current.State ["username"]を使用しても、それを達成できません。 次はxaml.csファイルの私のコードです:xaml.csからscheduletaskagent.csに値をアクセスできません。電話番号7.1アプリケーション

private void tservice_InsertUserCompleted(object sender, UTservice.InsertUserCompletedEventArgs e) 
    { 
     if (e.Result != string.Empty) 
     { 

      username = e.Result.ToString(); 
      PhoneApplicationService.Current.State["uname"] = username; 
      StartPeriodicAgent(); 

     } 

    } 

以下scheduledtaskagent.cs

protected override void OnInvoke(ScheduledTask task) 
    { 
     string uname; 
     uname = PhoneApplicationService.Current.State["uname"].ToString(); 
    } 

で上記のコードは、声明の中で「NullReference」の例外を取得しています。

誰かが私の問題を再現するための方法を教えてください。前もって感謝します。

答えて

0

PhoneApplicationService.Current.Stateはプロセスにとってローカルです。 AFAIK、バックグラウンドエージェントに値を直接渡すことはできません!

しかし、いくつかの情報をIsolatedStorage内のファイルに保存し、エージェントがそのファイルの内容を読み込んで何らかの形で使用することができます!