Идеальное место для составления деталей при использовании светового инструментария MEF + MVVM? - PullRequest
2 голосов
/ 16 июня 2010

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

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

Я бы хотел поместить его в MainWindow, которое, как мне кажется, создано с помощью шаблона проекта MVITM light takeit. Я использовал атрибут Export в MainViewModel и Model. Я импортирую ViewModel в ViewModelLocator, и я импортирую модель в ViewModel. Мне кажется, этого достаточно, чтобы все было правильно составлено. Однако, хотя ViewModel составлен правильно (он попадает в свой конструктор), модель имеет значение , а не . Я проверял окно вывода во время компоновки, и я не получаю там никаких ошибок MEF.

Итак, в заключение, это мои проблемы: 1. Где «правильное» место для составления частей? В случае WPF / MVVM, это всегда будет в начале приложения? 2. В отсутствие ошибок MEF в окне вывода, какие существуют другие методы, чтобы выяснить, почему вещи не решаются? Обычно я прохожу весь путь через Compose, чтобы попытаться понять. Есть ли лучшие методы отладки, чем эта? 3. Можете ли вы подумать, почему моя модель не загружается? 4. Есть ли хорошие проекты MEF + MVVM, которые я могу скачать для изучения?

1 Ответ

0 голосов
/ 17 июня 2010

Просто используйте MEFedMVVM , и у вас не возникнет ни одной из этих проблем. Как следует из названия, он был построен с нуля, чтобы решить тип проблем, которые вы упоминаете. И у этого есть намного больше ценных функций для создания приложений mvvm. Удачи.

...