28 lines
1021 B
C#
28 lines
1021 B
C#
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
namespace RobotNet10.CANOpen;
|
|
|
|
/// <summary>
|
|
/// Extension methods để register CANOpen services vào DI container
|
|
/// </summary>
|
|
public static class CanOpenExtensions
|
|
{
|
|
/// <summary>
|
|
/// Thêm CanOpenManager vào DI container như Singleton service và IHostedService
|
|
/// CanOpenManager sẽ tự động tạo SocketCanBus từ interface name
|
|
/// </summary>
|
|
/// <param name="services">Service collection</param>
|
|
/// <returns>Service collection để chain calls</returns>
|
|
public static IServiceCollection AddCanOpenManager(this IServiceCollection services)
|
|
{
|
|
services.AddSingleton<CanOpenManager>();
|
|
services.AddSingleton<ICanOpenManager>(serviceProvider => serviceProvider.GetRequiredService<CanOpenManager>());
|
|
services.AddHostedService(serviceProvider => serviceProvider.GetRequiredService<CanOpenManager>());
|
|
|
|
return services;
|
|
}
|
|
|
|
}
|
|
|