mirror of
https://github.com/oliverbooth/X10D
synced 2024-11-10 03:45:41 +00:00
Compare commits
5 Commits
b977b7a4ec
...
4c6ea59e2f
Author | SHA1 | Date | |
---|---|---|---|
4c6ea59e2f | |||
70cb1b7230 | |||
22532e8cef | |||
a715384e98 | |||
9b995524dd |
@ -35,6 +35,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
- X10D: Removed `IEnumerable<T>.ConcatOne` - this functionality already exists with `Append`.
|
- X10D: Removed `IEnumerable<T>.ConcatOne` - this functionality already exists with `Append`.
|
||||||
|
|
||||||
|
## [3.3.0] - 2023-08-21
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- X10D.Hosting: Added support for service/implementation registration with `AddHostedSingleton`.
|
||||||
|
|
||||||
## [3.2.2] - 2023-06-05
|
## [3.2.2] - 2023-06-05
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
@ -607,7 +613,8 @@ please [open an issue](https://github.com/oliverbooth/X10D/issues)!
|
|||||||
|
|
||||||
Earlier versions of this package are undocumented and unlisted from package results.
|
Earlier versions of this package are undocumented and unlisted from package results.
|
||||||
|
|
||||||
[unreleased]: https://github.com/oliverbooth/X10D/compare/v3.2.2...main
|
[unreleased]: https://github.com/oliverbooth/X10D/compare/v3.3.0...main
|
||||||
|
[3.3.0]: https://github.com/oliverbooth/X10D/releases/tag/v3.3.0
|
||||||
[3.2.2]: https://github.com/oliverbooth/X10D/releases/tag/v3.2.2
|
[3.2.2]: https://github.com/oliverbooth/X10D/releases/tag/v3.2.2
|
||||||
[3.2.0]: https://github.com/oliverbooth/X10D/releases/tag/v3.2.0
|
[3.2.0]: https://github.com/oliverbooth/X10D/releases/tag/v3.2.0
|
||||||
[3.1.0]: https://github.com/oliverbooth/X10D/releases/tag/v3.1.0
|
[3.1.0]: https://github.com/oliverbooth/X10D/releases/tag/v3.1.0
|
||||||
|
@ -21,6 +21,21 @@ public static class ServiceCollectionExtensions
|
|||||||
return services.AddSingleton<IHostedService, TService>(provider => provider.GetRequiredService<TService>());
|
return services.AddSingleton<IHostedService, TService>(provider => provider.GetRequiredService<TService>());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Adds an <see cref="IHostedService" /> registration for the given type, while simultaneously adding it as a singleton.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="services">The <see cref="IServiceCollection" /> to add the service to.</param>
|
||||||
|
/// <typeparam name="TService">The type of the service to add.</typeparam>
|
||||||
|
/// <typeparam name="TImplementation">The type of the implementation to use.</typeparam>
|
||||||
|
/// <returns>A reference to this instance after the operation has completed.</returns>
|
||||||
|
public static IServiceCollection AddHostedSingleton<TService, TImplementation>(this IServiceCollection services)
|
||||||
|
where TService : class, IHostedService
|
||||||
|
where TImplementation : class, TService
|
||||||
|
{
|
||||||
|
services.AddSingleton<TService, TImplementation>();
|
||||||
|
return services.AddSingleton<IHostedService, TService>(provider => provider.GetRequiredService<TService>());
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Adds an <see cref="IHostedService" /> registration for the given type, while simultaneously adding it as a singleton.
|
/// Adds an <see cref="IHostedService" /> registration for the given type, while simultaneously adding it as a singleton.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -32,4 +47,19 @@ public static class ServiceCollectionExtensions
|
|||||||
services.AddSingleton(type);
|
services.AddSingleton(type);
|
||||||
return services.AddSingleton(provider => (IHostedService)provider.GetRequiredService(type));
|
return services.AddSingleton(provider => (IHostedService)provider.GetRequiredService(type));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Adds an <see cref="IHostedService" /> registration for the given type, while simultaneously adding it as a singleton.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="services">The <see cref="IServiceCollection" /> to add the service to.</param>
|
||||||
|
/// <param name="serviceType">The type of the service to register.</param>
|
||||||
|
/// <param name="implementationType">The type of the implementation to use.</param>
|
||||||
|
/// <returns>A reference to this instance after the operation has completed.</returns>
|
||||||
|
public static IServiceCollection AddHostedSingleton(this IServiceCollection services,
|
||||||
|
Type serviceType,
|
||||||
|
Type implementationType)
|
||||||
|
{
|
||||||
|
services.AddSingleton(serviceType, implementationType);
|
||||||
|
return services.AddSingleton(provider => (IHostedService)provider.GetRequiredService(serviceType));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user