C# 针对给定场景使用ninject/autofac

C# 针对给定场景使用ninject/autofac,c#,dependency-injection,ninject,autofac,C#,Dependency Injection,Ninject,Autofac,比如说,我有一些供应商- <Providers> <Provider Type="Providers.IM" Name="Im"/> <Provider Type="Providers.Web" Name="Web"/> ... </Provider> ... 每个提供商都可以为我提供一个会话: <Sessions> <Session Name="GoogleIM" Provider="I

比如说,我有一些供应商-

<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更优雅/简单地处理此问题?

我可能无法正确理解您的设置,但我相信您可以很容易地用ninject处理此类操作。您可能希望创建一个基本接口,并让所有对象实现它。Ninject绑定将使用上下文来确定加载哪个类来代替接口类型。我在这里使用Ninject的上下文绑定编写了一个简短的教程:

那个链接死了。新的似乎是