1

以下で説明するように、構成目的でプロバイダー パターンを利用する Web アプリケーションを維持しています。

http://msdn.microsoft.com/en-us/library/ms972319.aspx
http://msdn.microsoft.com/en-us/library/ms972370.aspx

すべてが正常に機能していますが、アプリケーションに機能を追加すると、プロバイダーが複数の異なる機能のマッシュアップになっていることがわかります。同様の機能が他の同様の機能で編成されるように、構成プロバイダーを分割することを検討しています。これを行っているのは、元のプロバイダーに一部のモジュールで実装する必要のない関数がいくつかあるためです。プロバイダーを実装するときに無関係な関数に NotImplementedException をスローする代わりに、それらをまったく含めないようにしたいと考えています。

上記の MSDN メソッドを使用して複数のプロバイダーを作成できることはわかっていますが、複数のプロバイダーは web.config にさらに多くのエントリを作成するだけです。web.config のエントリが大きくなり始めているため、エントリを最小限に抑えるとよいでしょう。

プロバイダー モデルを実装する別の方法を見つけた人はいますか?

4

3 に答える 3

2

制御の反転(IoC)コンテナ(Googleの「CastleWindsor」、StructureMap、AutoFac、NInject、Microsoft Unity)の使用を検討できます。IoCを使用すると、構成ファイルまたはアプリケーションの開始時に「プロバイダー」を構成できます。

通常、使用しているプロバイダーのタイプごとにインターフェースを作成します。インターフェイスを使用すると、プロバイダーを簡単に分割できますが、それは理にかなっています。

インターフェースを配置したら、必要なときにそのインターフェースの実装をコンテナーに要求するだけで、コンテナーがプロバイダーのインスタンス化を処理します。

于 2009-01-28T02:06:26.167 に答える
0

基本的に、構成が可能なIOC(ほとんどのIOC)でそれを行うことができると思います。

私がやろうとしている方法は、「既知の」実装を使用するようにコードで AutoFac を構成することですが、オプションの「構成オーバーライド」を許可します。したがって、アプリケーションを「販売」し、誰かが別の実装を必要とする場合、彼らはそれを構成するだけで済みます。

私のブログ投稿で詳細を読んでください - うまくいけば、ブログにも良いコメントが寄せられます: http://healthedev.blogspot.com/2011/12/making-custom-built-applications.html

于 2011-12-13T11:03:50.130 に答える
0

ここを見てください:http://geekswithblogs.net/joycsharp/archive/2009/04/10/aggregator-provider-pattern-an-extension-of-provider-pattern.aspx

于 2009-04-30T19:06:11.880 に答える