1

背景:ライブラリを他の開発者に配布したかった(SDKまたはツールキットに沿っていくつかの内部Webサービスを抽象化したもの)。基盤となるサービスのさまざまなバージョンを注入するために、主にスタブのためにAutofacを使用しています。このアセンブリを、IoCを理解しているユーザーと理解していないユーザーの幅広い開発者に配布したいと思います。

精通した開発者であれば、注入する独自の実装を作成できます。それ以外の場合、開発者は構成なしでアセンブリを使用でき、IoCが内部で発生していることを認識または気にすることはありません。

楽しいこと: AutofacにXml構成を提供することも、プログラムでコンポーネントを構成することもできます(後者が推奨される方法です)。この場合、実行時まで何が構成されているかわからないため、Xml構成が必要になる可能性があります。AutofacにXml構成が存在する場合はそれを使用させる方法はありますか?それ以外の場合、何も提供されていない場合は無視しますか?

注:特定のセクション(「autofac」)の構成を調べることで、これを手動で実装できます。そこにない場合は、電話しないでください

builder.RegisterModule(new ConfigurationSettingsReader());

構成を手動で検査するよりも、これを行うためのより良い方法はありますか(Autofac内に隠された魔法のようなものが望ましいです。これは、要求されたすべてのことを実行できるようです!)

4

2 に答える 2

1

autofacで私が見ることができるのは、wikiのこのページ だけです。http ://code.google.com/p/autofac/wiki/StructuringWithModules そして、基本的にはすでにそれを行っています。他のすべての登録の後にXML登録を実行するだけです。

プログラムによるチェックは問題ないはずですが、構成設定リーダーは、特定のタイプの「Autofac.Configuration.SectionHandler、Autofac」を使用するものを自動的に取得できるのでしょうか。それが自動的に検出される場合は、何も定義されていないときに構成設定からti readを実行しようとすると、アプリケーションがクラッシュするかどうかを確認します。

于 2009-09-23T21:16:25.593 に答える
1

構成に特定のセクションがあるかどうかを確認するには、ConfigurationManager.OpenExeConfigurationを使用する必要があります。これにより、Configurationオブジェクトが提供され、そこからSectionsプロパティを調べて、Autofacセクションハンドラータイプのセクションがあるかどうかを確認します。

于 2009-09-24T08:18:28.393 に答える