1: /// <summary>
2: /// Registers the known view model services.
3: /// </summary>
4: /// <param name="serviceLocator">The service locator.</param>
5: protected override void RegisterViewModelServices(IServiceLocator serviceLocator)
6: {
7: // Logger already created, no IoC required
8: if (!_injectedServices.ContainsKey(typeof(ILogger)))
9: {
10: _injectedServices.Add(typeof(ILogger), Log);
11: }
12:
13: try
14: {
15: Log.Debug(TraceMessages.RegisteringDefaultServiceImplementationsForIoCContainer);
16:
17: #if WINDOWS_PHONE
18: serviceLocator.RegisterTypeIfNotYetRegistered<ILocationService, LocationService>();
19: serviceLocator.RegisterTypeIfNotYetRegistered<IMessageService, MessageService>();
20: serviceLocator.RegisterTypeIfNotYetRegistered<INavigationService, Services.NavigationService>();
21: serviceLocator.RegisterTypeIfNotYetRegistered<IVibrateService, VibrateService>();
22: #if WINDOWS_PHONE_MANGO
23: serviceLocator.RegisterTypeIfNotYetRegistered<IAccelerometerService, AccelerometerService>();
24: serviceLocator.RegisterTypeIfNotYetRegistered<ICameraService, CameraService>();
25: serviceLocator.RegisterTypeIfNotYetRegistered<ICompassService, CompassService>();
26: serviceLocator.RegisterTypeIfNotYetRegistered<IGyroscopeService, GyroscopeService>();
27: #endif
28: #elif SILVERLIGHT
29: serviceLocator.RegisterTypeIfNotYetRegistered<IMessageService, MessageService>();
30: serviceLocator.RegisterTypeIfNotYetRegistered<INavigationService, NavigationService>();
31: serviceLocator.RegisterTypeIfNotYetRegistered<IOpenFileService, OpenFileService>();
32: serviceLocator.RegisterTypeIfNotYetRegistered<IPleaseWaitService, PleaseWaitService>();
33: serviceLocator.RegisterTypeIfNotYetRegistered<ISaveFileService, SaveFileService>();
34: serviceLocator.RegisterTypeIfNotYetRegistered<IUIVisualizerService, UIVisualizerService>();
35: #else // WPF
36: serviceLocator.RegisterTypeIfNotYetRegistered<IMessageService, MessageService>();
37: serviceLocator.RegisterTypeIfNotYetRegistered<INavigationService, NavigationService>();
38: serviceLocator.RegisterTypeIfNotYetRegistered<IOpenFileService, OpenFileService>();
39: serviceLocator.RegisterTypeIfNotYetRegistered<IPleaseWaitService, PleaseWaitService>();
40: serviceLocator.RegisterTypeIfNotYetRegistered<IProcessService, ProcessService>();
41: serviceLocator.RegisterTypeIfNotYetRegistered<ISaveFileService, SaveFileService>();
42: serviceLocator.RegisterTypeIfNotYetRegistered<IUIVisualizerService, UIVisualizerService>();
43: #endif
44:
45: Log.Debug(TraceMessages.RegisteredDefaultServiceImplementationsForIoCContainer);
46: }
47: catch (Exception ex)
48: {
49: Log.Error(ex, TraceMessages.FailedToConfigureIoCContainer);
50:
51: throw new Exception(Exceptions.FailedToConfigureIoCContainer, ex);
52: }
53: }