Archived
Private
Public Access
1
0
This repository has been archived on 2026-02-04. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
ProjectBackup/Projekte/WebDesktop/WebDesktopBackend/Options/OptionsFromConfigurationExtensions.cs
2022-09-04 12:45:01 +02:00

26 lines
907 B
C#

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using System;
namespace WebDesktopBackend.Options
{
public static class OptionsFromConfigurationExtensions
{
public static T AddOptionsFromConfiguration<T>(this IServiceCollection services, IConfiguration configuration)
where T : OptionsFromConfiguration
{
T optionsInstance = (T)Activator.CreateInstance(typeof(T));
if (optionsInstance == null) return null;
string position = optionsInstance.Position;
services.Configure((Action<T>)(options =>
{
IConfigurationSection section = configuration.GetSection(position);
if (section != null)
{
section.Bind(options);
}
}));
return optionsInstance;
}
}
}