0

私のINFRASTRUCTUREモジュールでは常に、サービスとして機能するインターフェースを設定します。そして、各モジュールはそのサービスの具体的なクラスを作成します。

しかし今回は、すべてのモジュールを使用する必要があるサービスが必要です

インフラストラクチャには次のものがあります。

public interface IApplicationMenuRegistry
{
    void RegisterMenuItem(string menuItemName, string description, Type viewType);
}

各 moduleInit はこのインターフェイスを受け取り、メニュー項目を登録します。

具体的なサービスをどこで作成する必要がありますApplicationMenuRegistryか? インフラで?または別のモジュールで?

4

2 に答える 2

2

最も正しい答えは、「場合による」です。「インフラストラクチャ」に具体的なサービスを作成する必要がある場合もあれば、別の場所に作成する必要がある場合もあります。しかし、 DI フレームワークを見ることをお勧めします。さまざまな .NET 実装があります。DI フレームワークIApplicationMenuRegistryに、ターゲット オブジェクトへの実装の提供を任せます。

于 2012-09-08T17:42:58.100 に答える
0

つまり。言った-それは依存します。理想的には、別のモジュールにする必要があると思います。モジュールの依存関係を使用て、すべてのモジュールが 1 つの「スタートアップ」モジュールに依存することを指定する必要があります。または、ブートストラップで「共有」モジュールを最初に初期化し、その後で他のすべてのモジュールを初期化することもできます。「学術的な方法」は「モジュールの依存関係」ですが、実際の生活は常により複雑です;)

于 2012-09-12T08:31:54.333 に答える