Skip to content

Provides Configuration by Attributes at NetCore projects

License

Notifications You must be signed in to change notification settings

SammyROCK/NeoAttributedConfiguration

 
 

Repository files navigation

AttributedConfiguration

Fornece configuração por atributos para projetos NetCore, lendo os arquivos de configuração e os injetando via atributo como dependência na classe. Isso faz com que não se dependa mais de uma string para ler a configuração, pois há uma classe que a representa.

O que você vai encontrar aqui:

  • Instalação
  • Como usar
  • Exemplo

Instalação

Este projeto requer:

  • Instalar o NuGet conforme indicado na WiKi

Como usar

Registrar AttributedConfiguration:

No arquivo Startup.cs adicione a diretiva using para o pacote e no método ConfigureServices adicione o serviço.

using AttributedConfiguration;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;

namespace Application
{
	public class Startup
	{
		private readonly IConfiguration configuration;

		public Startup(IConfiguration configuration)
			=> this.configuration = configuration;

		public void ConfigureServices(IServiceCollection services)
		{
			services.AddAttributedConfigurations(this.configuration);
		}
	}
}

Desenvolver classes de configuração:

Adicione a diretiva using para o pacote e o atributo Configure:

using AttributedConfiguration;
using Microsoft.Extensions.Configuration;

namespace Parselmouth.Configuration {
	[Configure("[Configuration]")]
	public class ElasticSearchConfiguration {
		public string Server { get; }

		public string Index { get; }
		
		[Optional]
		public TimeSpan? Timeout { get; set; }
	}
}

Exemplo

Veja aqui um exemplo de uso
using AttributedConfiguration;
using Microsoft.Extensions.Configuration;
using System;

namespace Parselmouth.Configuration {
	public interface IPinConfiguration {
		int Count { get; }
		TimeSpan Duration { get; }
	}

	[Configure("[Configuration]")]
	public class PinConfiguration : IPinConfiguration {
		public int Count { get; set; }
		public TimeSpan Duration { get; set; }
	}
}

About

Provides Configuration by Attributes at NetCore projects

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%