Aicrosoft.Extensions.Hosting
6.1.4
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package Aicrosoft.Extensions.Hosting --version 6.1.4
NuGet\Install-Package Aicrosoft.Extensions.Hosting -Version 6.1.4
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Aicrosoft.Extensions.Hosting" Version="6.1.4" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Aicrosoft.Extensions.Hosting --version 6.1.4
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Aicrosoft.Extensions.Hosting, 6.1.4"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Aicrosoft.Extensions.Hosting as a Cake Addin #addin nuget:?package=Aicrosoft.Extensions.Hosting&version=6.1.4 // Install Aicrosoft.Extensions.Hosting as a Cake Tool #tool nuget:?package=Aicrosoft.Extensions.Hosting&version=6.1.4
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
How to use Aicrosoft.Extensions.Hosting
How to use
- add pakcage
NLog.Extensions.Logging
- add nlog.config
- chanage the program code and add extesion of host
Program.cs file
<details> <summary>The Application start</summary>
using Aicrosoft.Logging;
using Microsoft.Extensions.Hosting;
using NLogAIApp;
var start = Environment.TickCount64;
var logger = LogHelper.GetCurrentClassLogger();
logger.Trace($"Loggger was created TimeElapsed:{Environment.TickCount64 - start} ms");
try
{
start = Environment.TickCount64;
logger.Trace($"Begin Build Host Envirment ...");
using IHost host = Host.CreateDefaultBuilder(args)
.AddAppServices()
.Build();
logger.Trace($"End Build. TimeElapsed:{Environment.TickCount64 - start} ms");
await host.RunAsync();
return 0;
}
catch (Exception ex)
{
logger.Error(ex, "Build and run IHost has a exception");
return -9;
}
finally
{
LogHelper.Shutdown();
}
</details>
Startup.cs file
<details> <summary>The Application's Startup classs </summary>
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using NLogAIApp.Options;
using NLogAIApp.Services;
using System.Text;
namespace NLogAIApp;
public class Startup : HostedService
{
private readonly IHelloWorldService helloWorldService;
private readonly TasksOption tasksSetting;
public Startup(
IHostApplicationLifetime appLifetime, ILoggerFactory loggerFactory, IServiceProvider serviceProvider
, IHelloWorldService helloService
, IOptions<TasksOption> options
) : base(appLifetime, loggerFactory, serviceProvider)
{
helloWorldService = helloService;
tasksSetting = options.Value;
Logger.LogDebug($"setting json value is :{tasksSetting.ToJson()}");
}
public override async Task StartAsync(CancellationToken cancellationToken)
{
Logger.LogDebug("1. StartAsync has been called.");
Console.WriteLine();
Console.WriteLine("-------> LOGGING DEBUG TESTING BEGIN <--------");
await helloWorldService.SayHelloAsync();
Console.WriteLine("-------> LOGGING DEBUG TESTING END <--------");
Console.WriteLine();
Console.WriteLine($"------------Configuration demo--------------------");
var cfg = ServiceProvider.GetRequiredService<IConfiguration>();
var val1 = cfg.GetValue<int>("Tasks:Interval");
Console.WriteLine($"cfg.GetValue<int>(\"Tasks:Interval\") = {val1}");
Console.WriteLine($"-------------------------------------------------");
//It's stop the application.
AppLifetime.StopApplication();
}
public override async Task StopAsync(CancellationToken cancellationToken)
{
Logger.LogDebug("4. StopAsync has been called.");
await Task.CompletedTask;
//await _appLifetime.ShutdownAsync();
return;
}
}
</details>
ConfigureExtensions.cs file
<details> <summary>The Application's Host Extensions </summary>
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using NLog.Extensions.Logging;
using NLogAIApp.Options;
namespace NLogAIApp;
internal static class ConfigureExtensions
{
public static IHostBuilder AddAppServices(this IHostBuilder hostBuilder)
{
hostBuilder
.AddAppSetting()
.AddServices()
.AddNLog()
//.UseAop()
//.UseAopDI()
.AddHostedService<Startup>()
;
return hostBuilder;
}
/// <summary>
/// config.json register
/// </summary>
/// <param name="hostBuilder"></param>
public static IHostBuilder AddAppSetting(this IHostBuilder hostBuilder)
{
hostBuilder
//.ConfigureAppConfiguration((hostContext, configuration) =>
//{
// //configuration.Sources.Clear(); //在CreateDefaultBuilder(args)时如果有参数会被清除
// //configuration.AddCommandLine(args);
// var env = hostContext.HostingEnvironment;
// configuration
// .AddJsonFile("./appsettings.json")
// .AddJsonFile($"./appsettings.{env.EnvironmentName}.json", true, true);
//})
.ConfigureServices((hostContext, services) =>
{
var config = hostContext.Configuration;
services.Configure<TasksOption>(config.GetSection(TasksOption.SectionName));
// 可以直接取得上面配置的值
var tasksOption = config.GetSection(TasksOption.SectionName).Get<TasksOption>();
});
return hostBuilder;
}
}
</details>
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net6.0
- Aicrosoft.Extensions (>= 6.1.4)
- JetBrains.Annotations (>= 2022.1.0)
- Microsoft.Extensions.Hosting (>= 6.0.1)
NuGet packages (9)
Showing the top 5 NuGet packages that depend on Aicrosoft.Extensions.Hosting:
Package | Downloads |
---|---|
Aicrosoft.Extensions.AspectCore
Package Description |
|
Aicrosoft.Extensions.Mvc
Package Description |
|
Aicrosoft.Extensions.Swagger
Package Description |
|
Aicrosoft.Extensions.NLog
Package Description |
|
Aicrosoft.Scheduling
A multifunctional and extensible task scheduling framework |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
8.5.0 | 152 | 10/12/2024 |
8.3.0 | 177 | 9/10/2024 |
8.2.0 | 154 | 8/7/2024 |
6.4.0 | 552 | 11/20/2023 |
6.3.2 | 324 | 11/1/2023 |
6.2.1 | 333 | 8/25/2023 |
6.1.7 | 362 | 7/25/2023 |
6.1.5 | 540 | 3/13/2023 |
6.1.4 | 467 | 3/11/2023 |
6.1.3 | 536 | 2/21/2023 |
6.1.1 | 557 | 12/1/2022 |
6.1.1-beta.221203.1 | 185 | 12/3/2022 |
1.2.1-dev6-1129 | 691 | 11/29/2022 |
1.2.1-dev5-1115 | 202 | 11/29/2022 |
1.2.1-dev4-1114 | 226 | 11/14/2022 |
1.0.0 | 177 | 5/17/2023 |
0.2.1.1 | 551 | 11/10/2022 |
0.2.1-dev2-1110 | 216 | 11/10/2022 |
Quick and easy develop the dotnet