2010-05-24 3 views
1

Я пытаюсь узнать об инъекции зависимостей, и я использую блок приложения единства, чтобы помочь.Зависимость впрыска с блоком приложения Unity

Что я хочу сделать, это иметь консольное приложение, которое будет регистрировать класс (если оно реализует определенный интерфейс) и выполнить метод ... Таким образом, метод класса, реализующего метод, будет казнены.

Надеюсь, что имеет смысл ... хороший толчок в правильном направлении был бы идеальным!

Я смотрю документы на msdn, но я все еще не уверен на 100%, как это сделать.

Thx Стив

ответ

1
var container = new UnityContainer(); 
container.RegisterType<IFoo, Foo>(); 

container.Resolve<IFoo>().Bar(); 

Когда Resolve вызывается, он возвращает экземпляр Foo, поскольку это было то, что было зарегистрировано для интерфейса IFoo.

Unity не имеет конвенционных функций регистрации, таких как более продвинутые контейнеры DI. Если вы хотите получить позднюю композицию, вы можете взглянуть на MEF.

+0

Спасибо, я буду иметь люфт нет. Я надеюсь, что в конечном итоге это приложение, которое будет читать dll, создавать экземпляры классов в тех DLL, которые реализуют определенный интерфейс и выполняют код. dll будет жить в каталоге, поэтому я могу просто заглянуть в dll для дополнительной функциональности без изменения приложения. Надеюсь, что он будет в правильном направлении! Никогда не смотрел MEF, посмотрим ... thx – SteveCl

+0

MEF сделает это за вас. Единство не будет. –

+0

Есть ли у вас примеры (например, несколько строк)? У меня работает код, поэтому я регистрирую несколько классов, которые реализуют один и тот же интерфейс, и могут разрешать все и выполнять код, как я хочу. Теперь его просто открытие dll! Может быть, я должен начать еще один вопрос для этого! – SteveCl

0

Я никогда не слышал о MEF, но все, что вам нужно сделать, это реализовать простой шаблон плагина. Я написал статью некоторое время назад о том, как сделать это для ядра базы данных, но easilly может быть применен ко всему, что реализует интерфейс:

http://www.simonrhart.com/2009/04/example-of-plugin-pattern-on-compact.html

1

Вы можете посмотреть ниже 30 минут видео на Youtube, который идет шаг шагом в объяснении, как использовать DI с применением единства блок

http://www.youtube.com/watch?v=FuAhnqSDe-o

Смежные вопросы