Из-за разочарования и более чем трехдневного поиска этой проблемы ... У меня нет выбора, кроме как беспокоить вас, ребята, моим вопросом.
Я создаю приложение Silverlight. Я использую MEF. Когда я пытаюсь запустить свое приложение, я получаю следующую ошибку.
Вызов конструктора на
тип
'IFG.Silverlight.Client.Views.MenuView'
соответствует указанной привязке
ограничения бросили исключение. [Линия:
25 позиция: 47]
и его внутреннее исключение следующее ...
Состав остается без изменений.
изменения были отклонены из-за
следующие ошибки: Композиция
произвел единственную ошибку композиции.
Основная причина приведена ниже.
Просмотрите CompositionException.Errors
недвижимость для более подробной
информация.
1) Не найдено действительного экспорта, который
соответствовать ограничению
'((exportDefinition.ContractName ==
"MenuViewModel") и также
(ExportDefinition.Metadata.ContainsKey ( "ExportTypeIdentity")
А также
"IFG.Silverlight.Client.ViewModel.MenuViewModel" .equals (exportDefinition.Metadata.get_Item ( "ExportTypeIdentity")))),
неправильный экспорт мог быть
отвергнуто.
Результат: невозможно установить импорт
«IFG.Silverlight.Client.Views.MenuView.ViewModel
(ContractName = "MenuViewModel") 'в
часть
'IFG.Silverlight.Client.Views.MenuView.
Элемент:
IFG.Silverlight.Client.Views.MenuView.ViewModel
(ContractName = "MenuViewModel") ->
IFG.Silverlight.Client.Views.MenuView
Хорошо. мой код очень прост, так как это тестовое приложение.
У меня есть интерфейс IRetailModel
namespace IFG.Silverlight.Client.Common
{
public interface IRetailModel
{ ............
тогда у меня есть класс, который реализует этот интерфейс
namespace IFG.Silverlight.Client.Model
{
[Export(typeof(IRetailModel))]
public class RetailModel : IRetailModel
{ .................
Тогда у меня есть моя ViewModel для просмотра
namespace IFG.Silverlight.Client.ViewModel
{
[PartCreationPolicy(CreationPolicy.NonShared)]
[Export(ViewModelTypes.MenuViewModel)]
public class MenuViewModel : IFGViewModelBase
{
IRetailModel _model;
[ImportingConstructor]
public MenuViewModel(IRetailModel model)
{
Ну, я обнаружил, что есть магический инструмент под названием MefX, который должен глубоко отладить ваш код и сообщает вам, что происходит ... Я не смог заставить это работать.
Я следовал инструкциям из этой статьи http://blogs.msdn.com/b/nblumhardt/archive/2009/09/24/debug-composition-from-within-visual-studio.aspx
Когда я пытаюсь запустить, он говорит
Ошибка: невозможно загрузить один или несколько
запрошенные типы. Получить
Свойство LoaderExceptions для более
информация.
Затем вернулся в Google, и я нашел этот Visual MefX (тот же, но с графическим интерфейсом), и я могу загрузить .xap, но в основном он дает мне ту же информацию, что я получаю из Visual Studio. Я не могу найти проклятый [ПОТОМУ ЧТО] ...
Я действительно, ЧЕСТНО И ГЛУБИННО, расстроен этой ситуацией. Может кто-нибудь объяснить мне, где я не могу заставить MefX выполнять свою работу? Я знаю риск работы с этими Overnight Frameworks (отсутствие документации, глючность и т. Д.), Который кажется MEF, но Prism для меня не вариант (мне кажется, что покупать M16, чтобы убить муху, когда я могу использовать свой палец).
Спасибо