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 回答