App.xaml.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using EEMSMain.Service;
  2. using EEMSUIClientCore;
  3. using ServiceBase;
  4. namespace EEMSMain;
  5. /// <summary>
  6. /// Interaction logic for App.xaml
  7. /// </summary>
  8. public partial class App : PrismApplication
  9. {
  10. protected override Window CreateShell()
  11. {
  12. return Container.Resolve<MainWindow>();
  13. }
  14. protected override void RegisterTypes(IContainerRegistry containerRegistry)
  15. {
  16. containerRegistry.Register<ICommonContainer, CommonContainer>();
  17. containerRegistry.RegisterSingleton<ContainerManager>();
  18. containerRegistry.RegisterSingleton<DeviceCollection>();
  19. containerRegistry.RegisterSingleton<IUIProvider, UIProvider>();
  20. containerRegistry.RegisterSingleton<IUICaller, UICaller>();
  21. }
  22. protected override IModuleCatalog CreateModuleCatalog()
  23. {
  24. return new DirectoryModuleCatalog() { ModulePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Modules") };
  25. }
  26. }
  27. public class CommonContainer(IRegionManager regionManager,
  28. IModuleManager moduleManager, ContainerManager containerManager) : ICommonContainer
  29. {
  30. private const string _MainReginName = "MainRegion";
  31. string ICommonContainer.MainReginName => _MainReginName;
  32. void ICommonContainer.AddModule(string name)
  33. {
  34. try
  35. {
  36. moduleManager.LoadModule(name);
  37. }
  38. catch
  39. {
  40. }
  41. }
  42. void ICommonContainer.AddNavigation(ContainerInfo containerInfo)
  43. {
  44. if (containerInfo.IsHidden)
  45. return;
  46. App.Current.Dispatcher.Invoke(() =>
  47. {
  48. containerManager.Containers.TryAdd(containerInfo.Index, containerInfo);
  49. });
  50. }
  51. void ICommonContainer.RequestNavigation(string name)
  52. {
  53. regionManager.RequestNavigate(_MainReginName, name);
  54. }
  55. }