Внедрение зависимостей с помощью Unity Application Block - PullRequest
1 голос
/ 24 мая 2010

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

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

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

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

Спасибо Стиву

Ответы [ 3 ]

1 голос
/ 02 сентября 2014

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

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

1 голос
/ 24 мая 2010
var container = new UnityContainer();
container.RegisterType<IFoo, Foo>();

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

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

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

0 голосов
/ 19 июля 2010

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

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

...