В чем разница между IContainer Призмы и IUnityContainer? - PullRequest
0 голосов
/ 21 июля 2009

У меня есть Prism проект с кодом, который я получил из различных источников , все работает довольно хорошо, но я заметил, что в некоторых модулях я внедряю

IContainer container

и в другие модули, которые я внедряю

IUnityContainer container

IContainer, кажется, имеет только Components, Add и Remove , в то время как IUnityContainer имеет десятки методов.

Я часто меняю IContainer на IUnityContainer, чтобы можно было использовать методы разрешения последнего. В чем разница между этими двумя и почему я хотел бы использовать IContainer?

1 Ответ

2 голосов
/ 21 июля 2009

Это действительно две разные вещи с разными целями.

IUnityContainer - это контейнер внедрения зависимостей, который поддерживает все, что вам нужно сделать в сценарии внедрения зависимостей / размещения служб, например BuildUp, Resolve, Register и т. Д. часть Enterprise Library и используется CAG), перейдя по ссылке: Unity on Codeplex

IContainer используется для создания универсального контейнера для объектов, которые являются IComponents. Он используется рядом компонентов и находится в .NET Framework в System.ComponentModel. Это не имеет никакого отношения к Unity или CAG. Я бы посчитал это чем-то более специфичным для Windows Forms и менее WPF, хотя вы можете использовать IComponents в WPF косвенно. IContainer

При выполнении любого вида внедрения зависимостей вы должны использовать IUnityContainer, а не IContainer.

...