81 lines
3.3 KiB
C#
81 lines
3.3 KiB
C#
// ------------------------------------------------------------------------
|
||
// 版权信息
|
||
// 版权归百小僧及百签科技(广东)有限公司所有。
|
||
// 所有权利保留。
|
||
// 官方网站:https://baiqian.com
|
||
//
|
||
// 许可证信息
|
||
// 项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。
|
||
// 许可证的完整文本可以在源代码树根目录中的 LICENSE-APACHE 和 LICENSE-MIT 文件中找到。
|
||
// ------------------------------------------------------------------------
|
||
|
||
using Microsoft.Extensions.DependencyInjection;
|
||
|
||
using ThingsGateway;
|
||
|
||
namespace Microsoft.Extensions.Hosting;
|
||
|
||
/// <summary>
|
||
/// HostApplication 拓展
|
||
/// </summary>
|
||
public static class AppHostApplicationBuilderExtensions
|
||
{
|
||
/// <summary>
|
||
/// Host 应用注入
|
||
/// </summary>
|
||
/// <param name="hostApplicationBuilder">Host 应用构建器</param>
|
||
/// <param name="autoRegisterBackgroundService"></param>
|
||
/// <returns>HostApplicationBuilder</returns>
|
||
public static HostApplicationBuilder Inject(this HostApplicationBuilder hostApplicationBuilder, bool autoRegisterBackgroundService = true)
|
||
{
|
||
// 初始化配置
|
||
InternalApp.ConfigureApplication(hostApplicationBuilder, autoRegisterBackgroundService);
|
||
|
||
return hostApplicationBuilder;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 注册依赖组件
|
||
/// </summary>
|
||
/// <typeparam name="TComponent">派生自 <see cref="IServiceComponent"/></typeparam>
|
||
/// <param name="hostApplicationBuilder">Host 应用构建器</param>
|
||
/// <param name="options">组件参数</param>
|
||
/// <returns></returns>
|
||
public static HostApplicationBuilder AddComponent<TComponent>(this HostApplicationBuilder hostApplicationBuilder, object options = default)
|
||
where TComponent : class, IServiceComponent, new()
|
||
{
|
||
hostApplicationBuilder.Services.AddComponent<TComponent>(options);
|
||
|
||
return hostApplicationBuilder;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 注册依赖组件
|
||
/// </summary>
|
||
/// <typeparam name="TComponent">派生自 <see cref="IServiceComponent"/></typeparam>
|
||
/// <typeparam name="TComponentOptions">组件参数</typeparam>
|
||
/// <param name="hostApplicationBuilder">Host 应用构建器</param>
|
||
/// <param name="options">组件参数</param>
|
||
/// <returns><see cref="HostApplicationBuilder"/></returns>
|
||
public static HostApplicationBuilder AddComponent<TComponent, TComponentOptions>(this HostApplicationBuilder hostApplicationBuilder, TComponentOptions options = default)
|
||
where TComponent : class, IServiceComponent, new()
|
||
{
|
||
hostApplicationBuilder.Services.AddComponent<TComponent, TComponentOptions>(options);
|
||
|
||
return hostApplicationBuilder;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 注册依赖组件
|
||
/// </summary>
|
||
/// <param name="hostApplicationBuilder">Host 应用构建器</param>
|
||
/// <param name="componentType">组件类型</param>
|
||
/// <param name="options">组件参数</param>
|
||
/// <returns><see cref="HostApplicationBuilder"/></returns>
|
||
public static HostApplicationBuilder AddComponent(this HostApplicationBuilder hostApplicationBuilder, Type componentType, object options = default)
|
||
{
|
||
hostApplicationBuilder.Services.AddComponent(componentType, options);
|
||
|
||
return hostApplicationBuilder;
|
||
}
|
||
} |