OLT.Extensions.Configuration
9.0.0-beta-0005
Prefix Reserved
This is a prerelease version of OLT.Extensions.Configuration.
There is a newer prerelease version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package OLT.Extensions.Configuration --version 9.0.0-beta-0005
NuGet\Install-Package OLT.Extensions.Configuration -Version 9.0.0-beta-0005
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="OLT.Extensions.Configuration" Version="9.0.0-beta-0005" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="OLT.Extensions.Configuration" Version="9.0.0-beta-0005" />
<PackageReference Include="OLT.Extensions.Configuration" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add OLT.Extensions.Configuration --version 9.0.0-beta-0005
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: OLT.Extensions.Configuration, 9.0.0-beta-0005"
#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.
#:package OLT.Extensions.Configuration@9.0.0-beta-0005
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=OLT.Extensions.Configuration&version=9.0.0-beta-0005&prerelease
#tool nuget:?package=OLT.Extensions.Configuration&version=9.0.0-beta-0005&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
IConfiguration extensions
Configuration
// Examples of Connection String Parsers
services.Configure<OltConnectionConfigApiKey>("GrowthBook", options => options.Parse(configuration.GetOltConnectionString("GrowthBook")));
services.Configure<OltConnectionConfigRabbitMq>(opts => opts.Parse(Configuration.GetOltConnectionString("RabbitMq")));
services.Configure<OltConnectionConfigAmazon>(opts => opts.Parse(Configuration.GetOltConnectionString("AWS")));
services.Configure<OltConnectionConfigWcf>("AddressLookup", options => options.Parse(configuration.GetOltConnectionString("AddressLookup")));
// Example of GetOltConnectionString
// This looks for "connection-string" first, then falls back to the config.GetConnectionString()
// WHY? When you have Azure App Config or AWS Parameter store as the last configuration provider loaded, you need a way to use a local connection string.
services
.AddDbContext<DatabaseContext>(optionsBuilder =>
{
optionsBuilder
.UseSqlServer(configuration.GetOltConnectionString(AppConstants.ConnectionStrings.DbConnectionName), opt => opt.CommandTimeout(120));
if (System.Diagnostics.Debugger.IsAttached)
{
optionsBuilder
.EnableSensitiveDataLogging()
.EnableDetailedErrors();
}
});
Example 1
public class GrowthBookClient : IGrowthBookClient
{
readonly HttpClient _client;
readonly ILogger<GrowthBookClient> _logger;
readonly OltConnectionConfigApiKey _config;
public GrowthBookClient(HttpClient client, IOptionsSnapshot<OltConnectionConfigApiKey> options, ILogger<GrowthBookClient> logger)
{
_client = client;
_logger = logger;
_config = options.Get("GrowthBook");
}
public async Task<IEnumerable<FeatureFlagDto>> GetFeatureFlagsAsync(CancellationToken stoppingToken = default(CancellationToken))
{
if (string.IsNullOrEmpty(_config.Endpoint)) throw new Exception("Invalid GrowthBook Endpoint");
var response = await _client.GetAsync(_config.Endpoint, stoppingToken);
if (response.IsSuccessStatusCode)
{
// Do Stuff Here
}
else
{
throw new OltException($"GrowthBook Http Error: {response.StatusCode}");
}
}
}
Example 2 (using MassTransit RabbitMq)
services.AddMassTransit(transitConfigure =>
{
transitConfigure.AddConsumer<QueueItemConsumer>();
transitConfigure.AddDelayedMessageScheduler();
transitConfigure.SetKebabCaseEndpointNameFormatter();
transitConfigure.UsingRabbitMq((context, cfg) =>
{
var connectionConfig = context.GetRequiredService<IOptions<OltConnectionConfigRabbitMq>>().Value;
if (string.IsNullOrEmpty(connectionConfig.Host)) throw new Exception("Invalid RabbitMq Connection String");
cfg.Host(new Uri(connectionConfig.Host), h =>
{
h.Username(connectionConfig.Username);
h.Password(connectionConfig.Password);
});
cfg.ReceiveEndpoint("queue-name-here", ep =>
{
ep.PrefetchCount = 32;
ep.UseMessageRetry(r => r.Interval(2, 100));
ep.ConfigureConsumer<QueueItemConsumer>(context);
});
});
});
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. 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. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
-
net9.0
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated | |
---|---|---|---|
9.0.0-beta-0013 | 194 | 1/30/2025 | |
9.0.0-beta-0011 | 99 | 1/30/2025 | |
9.0.0-beta-0009 | 118 | 12/30/2024 | |
9.0.0-beta-0007 | 125 | 12/9/2024 | |
9.0.0-beta-0005 | 101 | 12/2/2024 | |
8.4.0-beta-0010 | 120 | 11/7/2024 | |
8.4.0-beta-0005 | 111 | 10/9/2024 | |
8.3.1 | 1,531 | 8/26/2024 | |
8.3.1-beta-0005 | 148 | 8/21/2024 | |
8.3.0 | 187 | 8/9/2024 | |
8.3.0-beta-0015 | 108 | 6/3/2024 | |
8.3.0-beta-0010 | 145 | 5/13/2024 | |
8.3.0-beta-0005 | 119 | 5/10/2024 | |
8.2.1 | 539 | 4/22/2024 | |
8.2.0 | 333 | 4/8/2024 | |
8.1.0 | 187 | 3/10/2024 | |
8.0.0 | 185 | 2/21/2024 | |
8.0.0-beta-0030 | 444 | 2/19/2024 | |
8.0.0-beta-0025 | 545 | 1/15/2024 | |
8.0.0-beta-0020 | 147 | 1/15/2024 | |
8.0.0-beta-0015 | 189 | 12/29/2023 | |
8.0.0-beta-0010 | 215 | 12/20/2023 | |
8.0.0-beta-0005 | 189 | 12/9/2023 | |
7.2.0 | 362 | 12/8/2023 | |
7.2.0-beta-0007 | 151 | 12/8/2023 | |
7.2.0-beta-0005 | 142 | 12/8/2023 | |
7.1.0 | 321 | 10/23/2023 | |
7.1.0-beta-0015 | 183 | 7/28/2023 | |
7.1.0-beta-0013 | 211 | 6/28/2023 | |
7.1.0-beta-0011 | 207 | 6/25/2023 | |
7.1.0-beta-0006 | 198 | 6/24/2023 | |
7.1.0-beta-0003 | 200 | 6/24/2023 | |
7.1.0-beta-0002 | 183 | 6/24/2023 | |
7.1.0-beta-0001 | 205 | 5/31/2023 | |
7.0.3 | 297 | 9/25/2023 | |
7.0.2 | 284 | 7/27/2023 | |
7.0.1 | 208 | 7/26/2023 | |
7.0.0 | 601 | 4/20/2023 | |
7.0.0-beta-0010 | 195 | 4/5/2023 | |
7.0.0-beta-0008 | 215 | 2/26/2023 | |
7.0.0-beta-0005 | 277 | 2/12/2023 | |
7.0.0-beta-0003 | 246 | 1/29/2023 | |
7.0.0-beta-0001 | 238 | 1/29/2023 | |
6.8.0 | 782 | 2/11/2023 | |
6.8.0-beta-0003 | 205 | 2/11/2023 | |
6.8.0-beta-0001 | 215 | 1/29/2023 | |
6.7.2 | 374 | 1/29/2023 | |
6.7.1 | 1,048 | 12/20/2022 | |
6.7.0 | 375 | 12/17/2022 | |
6.6.0 | 453 | 12/2/2022 | |
6.5.4 | 442 | 11/23/2022 | |
6.5.3 | 409 | 11/23/2022 | |
6.5.2 | 435 | 11/14/2022 | |
6.5.1 | 639 | 10/19/2022 | |
6.5.0 | 551 | 10/3/2022 | |
6.4.3 | 517 | 9/28/2022 | |
6.4.2 | 535 | 9/26/2022 | |
6.4.1 | 591 | 9/18/2022 | |
6.4.0 | 519 | 8/31/2022 | |
6.3.5 | 547 | 8/12/2022 | |
6.3.4 | 754 | 7/25/2022 | |
6.3.3 | 610 | 7/22/2022 | |
6.3.2 | 547 | 7/11/2022 | |
6.3.1 | 558 | 7/2/2022 | |
6.3.0 | 550 | 7/1/2022 | |
6.2.1 | 795 | 6/15/2022 | |
6.2.0 | 552 | 6/2/2022 | |
6.1.1 | 701 | 5/12/2022 | |
6.1.0 | 696 | 5/1/2022 | |
6.0.6 | 708 | 4/6/2022 | |
6.0.5 | 604 | 4/4/2022 | |
6.0.4 | 578 | 4/2/2022 | |
6.0.3 | 580 | 4/1/2022 | |
6.0.2 | 557 | 3/31/2022 | |
6.0.1 | 588 | 3/25/2022 | |
6.0.0 | 625 | 3/24/2022 | |
6.0.0-beta-0020 | 297 | 3/17/2022 | |
6.0.0-beta-0015 | 279 | 3/15/2022 | |
6.0.0-beta-0012 | 285 | 3/14/2022 | |
6.0.0-beta-0006 | 296 | 3/6/2022 | |
6.0.0-beta-0005 | 361 | 2/28/2022 | |
6.0.0-beta-0004 | 285 | 2/28/2022 | |
6.0.0-beta-0003 | 286 | 2/27/2022 | |
6.0.0-beta-0001 | 285 | 2/25/2022 |