0

Periodictask バックグラウンド エージェントでライブ タイルを使用しようとしています。私のシナリオは、medialibrary から画像を取得し、最大 9 つの画像をサポートする循環タイルとして最大 9 つの画像を分離ストレージに保存する必要があるということです。ソリューションに定期的なエージェント プロジェクトを追加し、メイン プロジェクトを参照しました。私の主なプロジェクトでは、定期的なタスクを登録し、そのタスクを開始しています。ただし、残りの呼び出しと実装はスケジュール エージェントによって行われます。タイルを作成するために、メイン プロジェクトからいくつかの画像を取得する必要があります。メイン プロジェクトの参照をスケジュール エージェント プロジェクトに追加しようとすると、「循環依存関係があります」と表示され、参照を追加できません。誰でも私を助けてください私のメインプロジェクトのビジネスロジックを私のスケジュールタスクプロジェクトで取得する方法.

=== 編集 ===

HelloWorld という名前の最初のメイン プロジェクトがあり、いくつかの操作を実行し、いくつかの画像を分離ストレージに保存し、未読メッセージの数を分離ストレージに保存するとします。現在、スケジューリング エージェントの 2 番目のプロジェクトがあり、メイン プロジェクト「HelloWorld」にそのレフリーがあり、スケジューリング エージェントを登録して、メイン プロジェクト「HelloWorld」で開始しています。しかし、呼び出しの残りの部分はスケジューリング エージェントにあります。

protected override void OnInvoke(ScheduledTask task)
{
 StandardTileData data = new StandardTileData

 {

 Title = "My tile!",

 Count = 10, // I Need To Get This Counter From Isolated Storage Or My Other main Project

 BackgroundImage = new Uri("/Background.png", UriKind.RelativeOrAbsolute),

 BackTitle = "This is the back",

 BackContent = "Hallo!",

 BackBackgroundImage = new Uri("/Background.png", UriKind.RelativeOrAbsolute)
 };

ShellTile.ActiveTiles.First().Update(data);
  // If debugging is enabled, launch the agent again in one minute.
#if DEBUG_AGENT
  ScheduledActionService.LaunchForTest(task.Name, TimeSpan.FromSeconds(60));
#endif

  // Call NotifyComplete to let the system know the agent is done working.
  NotifyComplete();
}

Igor の提案に従って、3 番目のクラス ライブラリ プロジェクトを作成し、メイン プロジェクトから情報を取得するメソッドを 1 つ記述し、この 3 番目のクラス ライブラリ プロジェクトでメイン プロジェクトを参照するとします。次に、スケジューリング プロジェクトでこのクラス ライブラリを呼び出すと、循環依存関係があると再度​​表示されます。達成する方法を教えてください

4

1 に答える 1

0

ビジネス ロジックを 3 番目のライブラリ クラス プロジェクトに抽出し、それをメイン プロジェクトとスケジュール タスク プロジェクトの両方から参照します。

于 2013-09-30T07:29:18.503 に答える