0

私はいくつかのプロバイダーを持っています、例えば -

<Providers>
    <Provider Type="Providers.IM"  Name="Im"/>
    <Provider Type="Providers.Web" Name="Web"/>
    ...
</Provider> 

これらの各プロバイダーは、私にセッションを与えることができます:

<Sessions>
    <Session Name="GoogleIM" Provider="Im"  URL="..." />
    <Session Name="YahooIM"  Provider="Im"  URL="..." />
    <Session Name="YahooWeb" Provider="Web" URL="..." />
    ...
</Session>

現在、プロバイダーを調べ、タイプをインスタンス化し、URL を (手動で) 挿入することで、「名前付き」セッションをインスタンス化しています。

おそらくURLを理解し、適切なセッションを返す必要があるセッションファクトリを使用できます。

これを ninject/autofac でよりエレガントに/簡単に処理する方法はありますか?

4

1 に答える 1

2

私はあなたの設定を正しく理解していないかもしれませんが、Ninject でこのタイプの操作をかなり簡単に処理できると思います。基本インターフェースを作成し、すべてのオブジェクトにそれを実装させたいと思うでしょう。Ninject バインディングは Context を使用して、インターフェイス タイプの代わりにロードするクラスを決定します。ここで入手可能なNinjectのコンテキストバインディングを使用して簡単なチュートリアルを書きました: http://frickinsweet.com/ryanlanciaux.com/post/Real-Ultimate-Power--Dependency-Injection-with-Ninject.aspx

于 2009-02-12T19:01:02.933 に答える