Я использую PRISM 4 и разбираюсь почти со всеми функциями, однако, как только я хотел бы внедрить свой класс DomainContext (RIA) в мою модель представления, ад выходит из строя.:) Было бы здорово, если бы опытный разработчик Unity / Prism мог бы дать мне совет, как поступить.
В моем загрузчике я регистрирую необходимый класс в Unity Container следующим образом:
protected override void ConfigureContainer()
{
base.ConfigureContainer();
Container.RegisterType<SCMDomainContext>();
}
В модуле NavigationModule у меня есть следующее в ctor для регистрации NavigationView в определенном регионе.
public NavigationModule(IUnityContainer container, IRegionManager regionManager)
{
_container = container;
_regionManager = regionManager;
_regionManager.RegisterViewWithRegion(Constants.NavRegion, () => _container.Resolve<NavigationView>());
}
Представление принимает модель представления в качестве зависимости:
public NavigationView(NavigationViewModel viewModel)
{
InitializeComponent();
Loaded += (s, e) =>
{
DataContext = viewModel;
};
}
Модель представления имеет следующее:
public NavigationViewModel(SCMDomainContext context)
{
_context = context;
ConstructCommon();
}
Как только я комментирую этот ctor внеи вставьте пустой ctor, все нормально, по какой-то причине я не могу разрешить класс SCMDomainContext.Который вы добавляете, чтобы для вас был создан контекст домена, предоставленный Ria Services.
Поскольку я использую Silverlight, я не вижу трассировки стека, чтобы следовать за исключением, все, что я получаю, это сообщениена странице.Что мне не хватает, пожалуйста?
Microsoft JScript runtime error: Unhandled Error in Silverlight Application An exception occurred while initializing module 'NavigationModule'.
- The exception message was: Activation error occured while trying to get instance of type NavigationModule, key ''
Check the InnerException property of the exception for more information. If the exception occurred
while creating an object in a DI container, you can exception.GetRootException() to help locate the
root cause of the problem. at Microsoft.Practices.Prism.Modularity.ModuleInitializer.HandleModuleInitializationError(ModuleInfo moduleInfo, String assemblyName, Exception exception)
at Microsoft.Practices.Prism.Modularity.ModuleInitializer.Initialize(ModuleInfo moduleInfo)
at Microsoft.Practices.Prism.Modularity.ModuleManager.LoadModulesThatAreReadyForLoad()
at Microsoft.Practices.Prism.Modularity.ModuleManager.IModuleTypeLoader_LoadModuleCompleted(Object sender, LoadModuleCompletedEventArgs e)
at Microsoft.Practices.Prism.Modularity.XapModuleTypeLoader.RaiseLoadModuleCompleted(LoadModuleCompletedEventArgs e)
at Microsoft.Practices.Prism.Modularity.XapModuleTypeLoader.HandleModuleDownloaded(DownloadCompletedEventArgs e)
at Microsoft.Practices.Prism.Modularity.XapModuleTypeLoader.IFileDownloader_DownloadCompleted(Object sender, DownloadCompletedEventArgs e)
at Microsoft.Practices.Prism.Modularity.FileDownloader.WebClient_OpenReadCompleted(Object sender, OpenReadCompletedEventArgs e)
at System.Net.WebClient.OnOpenReadCompleted(OpenReadCompletedEventArgs e)
at System.Net.WebClient.OpenReadOperationCompleted(Object arg)
Ваша помощь в этом высоко ценится, Каве