Необработанная ошибка в приложении Silverlight Невозможно найти модуль - PullRequest
1 голос
/ 27 декабря 2010

Мое решение содержит 4 проекта Silverlight - один основной, два модульных проекта и последний общий проект (для общих интерфейсов и т. Д.).

Основной и модульный проекты не имеют ссылок друг на друга (просто для совместного использования проекта).

Вы можете найти определения моих модулей ниже:

[ModuleExport("ServiceModule", typeof(ServiceModule), InitializationMode = InitializationMode.WhenAvailable)]
public class ServiceModule : IModule

[ModuleExport("ViewModule",
    typeof(ViewModule),
    DependsOnModuleNames = new string[] { "ServiceModule" },
    InitializationMode = InitializationMode.WhenAvailable)]
public class ViewModule : IModule

И я добавил модули в ModuleCatalog в производный класс MefBootstrapper основного проекта (я использовал регистрацию кода модулей вместо метода CreateFromXaml):

protected override void ConfigureModuleCatalog()
{
    ModuleCatalog.AddModule(
      new ModuleInfo()
      {
          ModuleName = "ServiceModule",
          ModuleType = "SilverlightEnabledService.ModuleDefinitions.ServiceModule, SilverlightEnabledService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ca4f032071a86aea",
          Ref = "SilverlightEnabledService.xap",
          InitializationMode = InitializationMode.WhenAvailable
      }
    );

    ModuleCatalog.AddModule(
      new ModuleInfo()
      {
          ModuleName = "ViewModule",
          ModuleType = "RedOrBlackModule.ModuleDefinitions.ViewModule, RedOrBlackModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ca4f032071a86aea",
          Ref = "RedOrBlackModule.xap",
          InitializationMode = InitializationMode.WhenAvailable,
          DependsOn = (new Collection<string>(new string[] { "ServiceModule" }))
      }
    );
}

Как видно из кода выше, имя модуля ModuleCtalog совпадает с именем модуля в ModuleExportAttribute, но я получаю исключение ниже:

Uncaught Ошибка: необработанная ошибка в приложении Silverlight Невозможно найти модуль с экспортированным модулем с типом SilverlightEnabledService.ModuleDefinitions.ServiceModule, SilverlightEnabledService, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = ca4f032071a86aea ' Убедитесь, что имя модуля в каталоге модулей соответствует указанному в ModuleExportAttribute для типа модуля. в Microsoft.Practices.Prism.Modularity.ModuleInitializer.HandleModuleInitializationError (ModuleInfo moduleInfo, String assemblyName, Исключение исключения) ...

Кажется, это очень простая проблема, но я пока не могу найти решение.

1 Ответ

0 голосов
/ 28 декабря 2010

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

...