Prism 6.0 с WPF без внедрения зависимостей?

Я разрабатываю очень маленькое приложение в WPF, и я решил использовать структуру Prism 6.0 после того, как мне не понравился Caliburn. .Micro и MVVM Light Toolkit.

Я хочу иметь возможность использовать регионы в своем приложении, но не хочу использовать Unity и внедрение зависимостей, потому что это излишне для этого приложения.

Если я хочу иметь оболочку, которая является главным окном с определенной областью, которая будет отображать либо ViewA, либо ViewB в одной своей области, как я могу сделать это без использования Unity или UnityBootstrapper? Мне сложно это понять, поскольку все примеры в Интернете и учебные материалы используют Unity или какую-либо другую систему DI.

РЕДАКТИРОВАТЬ: чтобы уточнить: я в основном пытаюсь избежать Unity / DI, потому что это заставляет меня использовать модули, где это приложение очень мало, и я не получу выгоду от модулей, и это только усложнит понимание проекта для новые глаза.


person Kyle V.    schedule 01.11.2016    source источник
comment
Unity - это излишество, а вот Prism - нет? Prism использует DI, поэтому вы можете использовать Unity или самостоятельно.   -  person    schedule 01.11.2016


Ответы (1)


Prism полагается на IoC для своей работы. У вас должно быть что-то, что разрешает объекты в приложении Prism. Это может быть один из встроенных контейнеров DI или пользовательская реализация, использующая простой Activator.CreateInstance.

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

Мне было бы интересно узнать, что в Prism, по вашему мнению, является "излишним", поскольку это перегруженный термин, и обычно эти комментарии плохо сформулированы.

person Community    schedule 01.11.2016
comment
Спросите регионального менеджера в ваших ViewModels, когда вам это нужно. - person ; 02.11.2016
comment
Добавьте его как параметр ctor - person ; 02.11.2016