1

Silverlight 4アプリケーションを作成しましたが、問題が発生しました。

すべてのサブシステムがすべてのユーザーに必要なわけではないため、ダウンロードを減らしてパフォーマンスを向上させるために、アプリケーションを複数のxap(異なるサブシステム)に分割しました。

ただし、xapごとにWebContextを再度認証して設定するのではなく、xap間でWebContextを共有したいと思います。

これは可能ですか?もしそうなら、どうすればそれを達成できますか?

4

1 に答える 1

1

ライブラリをすべてのアプリケーションと共有する必要があります。そこで、Project1.xap、Project2.xap、Project3.xap という 3 つの XAP プロジェクトがあるとします。これらすべてのプロジェクトは、共有ロジックを持つ別の Silverlight クラス ライブラリを参照する必要があります。この共有プロジェクトでは、ルート アプリケーションによって実装されるインターフェイスを作成できます。これを IApplicationContext と呼びましょう。

ルート アプリケーションは、他のすべての XAP をロードする XAP ファイルです。これを Root.xap と呼びましょう。これは認証を管理し、作成時に他の XAP に渡す IApplicationContext の実装を作成します。

// This is available for all projects (shared.dll)
public interface IApplicationContext
{
    string Username { get; }
    Guid SessionId { get; }
    // ...
}

// This is implemented in the root application (Root.xap)
public class MyAppContext : IApplicationContext
{
    public string Username { get; private set; }
    public Guid SessionId { get; private set; }
    // ...
}

アプリケーション間で何でも共有でき、いつでも IApplicationContext をスタブ/モックできるため、個別のプロジェクトをテスト可能に保つことができます。

于 2011-04-28T23:48:37.780 に答える