Использование ninject / autofac для данного сценария - PullRequest
0 голосов
/ 12 февраля 2009

У меня есть несколько провайдеров, скажем -

<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?

1 Ответ

2 голосов
/ 12 февраля 2009

Возможно, я неправильно понимаю вашу настройку, но я полагаю, что вы легко справитесь с этим типом операций с помощью Ninject. Вы хотели бы создать базовый интерфейс и сделать так, чтобы все ваши объекты реализовали это. Ваши привязки Ninject будут использовать контекст, чтобы определить, какой класс загружать вместо вашего типа интерфейса. Я написал краткое руководство, используя контекстную привязку Ninject, доступную здесь: http://frickinsweet.com/ryanlanciaux.com/post/Real-Ultimate-Power--Dependency-Injection-with-Ninject.aspx

...