developpement:dotnet:msioc
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
developpement:dotnet:msioc [2023/05/16 04:43] – [Hosted Service] sgariepy | developpement:dotnet:msioc [2023/06/19 18:43] (Version actuelle) – [Exemple] sgariepy | ||
---|---|---|---|
Ligne 102: | Ligne 102: | ||
- | ====== Bakcground | + | ===== Background |
Ligne 135: | Ligne 135: | ||
app.Services.GetService(typeof(CustomBackgroundService)); | app.Services.GetService(typeof(CustomBackgroundService)); | ||
</ | </ | ||
+ | |||
+ | ==== Exemple ==== | ||
+ | |||
+ | |||
+ | <code csharp> | ||
+ | protected override async Task ExecuteTask(CancellationToken cancellationToken) | ||
+ | { | ||
+ | |||
+ | while (!cancellationToken.IsCancellationRequested) | ||
+ | { | ||
+ | using (var scope = _serviceProvider.CreateScope()) | ||
+ | { | ||
+ | var productService = scope.ServiceProvider.GetService< | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ====== Exemple exécutable dans LinqPad 7 ====== | ||
+ | |||
+ | Language: C# Program, .NET 7.0 | ||
+ | |||
+ | <code csharp> | ||
+ | void Main() | ||
+ | { | ||
+ | string[] args = new string[0]; | ||
+ | |||
+ | using IHost host = Host.CreateDefaultBuilder(args) | ||
+ | .ConfigureServices((_, | ||
+ | services | ||
+ | .AddSingleton< | ||
+ | .AddSingleton< | ||
+ | ) | ||
+ | .Build(); | ||
+ | |||
+ | using IServiceScope serviceScope = host.Services.CreateScope(); | ||
+ | IServiceProvider provider = serviceScope.ServiceProvider; | ||
+ | |||
+ | BasicService basicService = provider.GetService< | ||
+ | |||
+ | // host.Run(); | ||
+ | |||
+ | Console.WriteLine(" | ||
+ | } | ||
+ | |||
+ | #region Services | ||
+ | |||
+ | public class BasicService | ||
+ | { | ||
+ | private readonly ISimpleService _simpleService; | ||
+ | |||
+ | public BasicService( | ||
+ | ISimpleService simpleService) | ||
+ | { | ||
+ | _simpleService = simpleService; | ||
+ | |||
+ | SetupService(); | ||
+ | } | ||
+ | |||
+ | |||
+ | private void SetupService() | ||
+ | { | ||
+ | _simpleService.SayHello(); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | public interface ISimpleService { | ||
+ | public void SayHello(); | ||
+ | } | ||
+ | |||
+ | public class SimpleService: | ||
+ | { | ||
+ | private readonly ISimpleService _simpleService; | ||
+ | |||
+ | public SimpleService() {} | ||
+ | |||
+ | public void SayHello() | ||
+ | { | ||
+ | Console.WriteLine(" | ||
+ | } | ||
+ | } | ||
+ | |||
+ | #endregion | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
developpement/dotnet/msioc.1684204998.txt.gz · Dernière modification : 2023/05/16 04:43 de sgariepy