MEF - Отображение вида из другого вида - PullRequest
2 голосов
/ 20 октября 2010

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

[Export("OperatingPlugin", typeof(UserControl))]    
[ExportMetadata("Name", "EDIFACT Viewer")]
[ExportMetadata("Dock", "main")]
[ExportMetadata("Hidden",true)]
[ExportMetadata("Icon","editedi.xaml")]
public partial class EdiView : UserControl
{
    //[Import("PluginSelectFile", typeof(UserControl))]
    //public Lazy<UserControl> SelectFile { get; set; }

Когда загружается представление, я хочу показать другое представление (в отдельной сборке), которое выбирает файл. Я могу видеть в каталоге в app.xaml.cs все представления (также PluginSelectFile), но после удаления приведенных выше комментариев эта сборка (EDIFACT Viewer) больше не отображается. Где мне чего-то не хватает?

1 Ответ

0 голосов
/ 20 октября 2010

Скорее всего, экспорт PluginSelectFile не соответствует импорту, когда он не закомментирован, или существует несколько совпадающих экспортов, оба из которых могут привести к отклонению экспорта OperatingPlugin.

См. Мое сообщение в блоге на Как отлаживать и диагностировать сбои MEF , чтобы узнать, почему это происходит, и как вы можете выяснить, как это исправить.

...