对给定方案使用ninject / autofac

时间:2009-02-12 18:41:56

标签: c# dependency-injection ninject autofac

我有一些提供者,比如说 -

<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(手动)来实例化“命名”会话。

我可以使用会话工厂,这可能需要了解网址并返回正确的会话。

有没有办法用ninject / autofac更优雅/简单地处理这个?

1 个答案:

答案 0 :(得分:2)

我可能无法正确理解您的设置,但我相信您可以轻松地使用Ninject处理此类操作。您可能希望创建一个基本接口,并让所有对象实现该接口。您的Ninject绑定将使用Context来确定要加载哪个类来代替您的接口类型。我在这里使用Ninject的上下文绑定编写了一个简短的教程:http://frickinsweet.com/ryanlanciaux.com/post/Real-Ultimate-Power--Dependency-Injection-with-Ninject.aspx