Я хотел бы кое-что понять.
У меня есть проект приложения Silverlight "Service", который содержит класс Module и следующую строку кода в его метод "Initialize" для регистрации типа:
unityContainer.RegisterInstance<IService>(instance);
И у меня есть еще один проект приложения Silverlight «Управление».Модуль описан в файле catalog.xaml:
<Modularity:ModuleInfo
Ref="Service.xap"
ModuleName="ServiceModule"
ModuleType="Service.ModuleDefinitions.Module, Service, Version=1.0.0.0">
</Modularity:ModuleInfo>
. Вы можете найти код "Bootstrapper" ниже:
protected override IModuleCatalog CreateModuleCatalog()
{
Uri uri = new Uri("catalog.xaml", UriKind.Relative);
ModuleCatalog moduleCatalog = Microsoft.Practices.Prism.Modularity.ModuleCatalog.CreateFromXaml(uri);
// NOTE: State of "ServiceModule" is "NotStarted" here...
return moduleCatalog;
}
protected override DependencyObject CreateShell()
{
Shell shell = new Shell();
Application.Current.RootVisual = shell;
IRegionManager regionManager = Container.Resolve<IRegionManager>();
regionManager.RegisterViewWithRegion("MainRegion", typeof(MainView));
return shell;
}
Один класс ViewModel (в проекте "Controls") содержит ссылкув интерфейс IService, который должен быть зарегистрирован в классе Modul проекта «Сервис».
Методы CreateModuleCatalog () и CreateShell () выполнялись без проблем во время отладки программы, но я получил исключение перед выполнением Initialize ()метод с регистрацией IService.
Сообщение об ошибке: «Текущий тип, Service.ServiceReference.IService, является интерфейсом и не может быть создан. Вам не хватает отображения типов?»
Я думалчто мне нужно регистрировать / отображать типы только один раз, и если я сделал это в проекте класса «Модуль», то мне не нужно было делать это снова в проекте «Управление».
Мне нужна помощь, чтобы понять ситуацию выше :)