MVVMLight + MvvmDialogs Определение манифеста обнаруженной сборки не соответствует ссылке на сборку - PullRequest
0 голосов
/ 06 июля 2018

В моем проекте WPF есть MVVM Light и MvvmDialogs.

Если у меня есть эта строка в конструкторе ViewModelLocator

SimpleIoc.Default.Register<IDialogService>(() => new DialogService(null, new DialogTypeLocator(), null));

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

<local:ViewModelLocator x:Key="Locator" d:IsDataSource="True" />

Уже есть фабрика, зарегистрированная для MvvmDialogs.IDialogService.

Если я отключу эту строку в режиме конструктора, я получу эту ошибку.

Определение манифеста обнаруженной сборки не соответствует ссылке на сборку.

Что я делаю не так?

Редактировать: Кажется, это две совершенно разные проблемы. Я удалил MvvmDialogs и все еще имею 2-ую ошибку.

При дальнейшем исследовании использование ViewModelBase.IsInDesignModeStatic в конструкторе ViewModelLocator вызывает 2-ю ошибку, а регистрация DialogService в режиме конструктора вызывает первую ошибку - но затем мне нужно ViewModelBase.IsInDesignModeStatic, чтобы отключить его в режиме конструктора ...

1 Ответ

0 голосов
/ 06 июля 2018

Я нашел этот пост SimpleIoc.Default.Register завершается ошибкой в ​​IsInDesignModeStatic, если интерфейс находится в другой сборке

Я решил первую проблему, зарегистрировав DialogService с

if (!SimpleIoc.Default.IsRegistered<IDialogService>())
    SimpleIoc.Default.Register<IDialogService>(() => new DialogService(null, new DialogTypeLocator(), null));

Я «решил» вторую проблему, не используя ViewModelBase.IsInDesignModeStatic - это не совсем решение, но, по крайней мере, пока ошибка не устранена. Хотелось бы узнать, как установить макет во время разработки ViewModel.

Редактировать: Лучшее решение для проблемы # 1 - добавить это в начале конструктора

SimpleIoc.Default.Reset();

Лучшее решение для проблемы # 2 - использовать это вместо ViewModelBase.IsInDesignModeStatic

DesignerProperties.GetIsInDesignMode(new DependencyObject())
...