Created
September 22, 2020 10:01
-
-
Save mr5z/c5087d1b7dc5baac408c1628e4aeca1b to your computer and use it in GitHub Desktop.
IoC extension
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using Prism.Ioc; | |
namespace ProjectName | |
{ | |
// NOTE | |
// We should not register services that falls under these categories: | |
// 1. Implementation is platform-specific | |
// 2. Implementation requires a certain dependency which doesn't caters all use cases, e.g: Crash Analytics Service | |
public static class ContainerRegistryExtension | |
{ | |
public static IContainerRegistry UseDomainProvider(this IContainerRegistry container, string apiAddress) | |
{ | |
return container.RegisterInstance<IDomainProvider>(new DomainProvider(apiAddress)); | |
} | |
public static IContainerRegistry UseDomainProvider(this IContainerRegistry container, string apiAddress, string authAddress) | |
{ | |
return container.RegisterInstance<IDomainProvider>(new DomainProvider(apiAddress, authAddress)); | |
} | |
public static IContainerRegistry UseDomainProvider(this IContainerRegistry container, string apiAddress, string authAddress, string webAddress) | |
{ | |
return container.RegisterInstance<IDomainProvider>(new DomainProvider(apiAddress, authAddress, webAddress)); | |
} | |
public static IContainerRegistry UseHttpService(this IContainerRegistry container) | |
{ | |
return container.RegisterSingleton<IHttpService, HttpService>(); | |
} | |
public static IContainerRegistry UseAuthService(this IContainerRegistry container) | |
{ | |
return container.RegisterSingleton<IAuthService, AuthService>(); | |
} | |
public static IContainerRegistry UseDownloadService(this IContainerRegistry container) | |
{ | |
return container.RegisterSingleton<IDownloadService, DownloadService>(); | |
} | |
public static IContainerRegistry UseDownloadManager(this IContainerRegistry container) | |
{ | |
return container.RegisterSingleton<IDownloadManager, DownloadManager>(); | |
} | |
public static IContainerRegistry UseCachingService(this IContainerRegistry container, string applicationId) | |
{ | |
return container.RegisterInstance<ICachingService>(new CachingService(applicationId)); | |
} | |
public static IContainerRegistry UsePermissionService(this IContainerRegistry container) | |
{ | |
return container.RegisterSingleton<IPermissionService, PermissionService>(); | |
} | |
public static IContainerRegistry UseUploadManager(this IContainerRegistry container) | |
{ | |
return container.RegisterSingleton<IUploadManager, UploadManager>(); | |
} | |
public static IContainerRegistry UseUploadService(this IContainerRegistry container) | |
{ | |
return container.RegisterSingleton<IUploadService, UploadService>(); | |
} | |
public static IContainerRegistry UseDispatcherService(this IContainerRegistry container) | |
{ | |
return container.RegisterSingleton<IDispatcherService, DispatcherService>(); | |
} | |
public static IContainerRegistry UsePathProvider(this IContainerRegistry container) | |
{ | |
return container.RegisterSingleton<IPathProvider, PathProvider>(); | |
} | |
public static IContainerRegistry UseAuthorizedHttpService(this IContainerRegistry container) | |
{ | |
return container.RegisterSingleton<IAuthorizedHttpService, AuthorizedHttpService>(); | |
} | |
public static IContainerRegistry UseAnonymousHttpService(this IContainerRegistry container) | |
{ | |
return container.RegisterSingleton<IAnonymousHttpService, AnonymousHttpService>(); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment