Skip to content

Commit 08d72ea

Browse files
Added project to solution; Fixed references
1 parent 53989b4 commit 08d72ea

File tree

4 files changed

+37
-11
lines changed

4 files changed

+37
-11
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
/**/bin/*
2+
/**/obj/*
3+
/**/nuget/*

C9S.Extensions.Configuration.sln

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
1+
22
Microsoft Visual Studio Solution File, Format Version 12.00
33
# Visual Studio 15
44
VisualStudioVersion = 15.0.26124.0
55
MinimumVisualStudioVersion = 15.0.26124.0
6+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "C9S.Extensions.Configuration", "C9S.Extensions.Configuration\C9S.Extensions.Configuration.csproj", "{80360538-3243-4FFD-9360-7D41A04C16E5}"
7+
EndProject
68
Global
79
GlobalSection(SolutionConfigurationPlatforms) = preSolution
810
Debug|Any CPU = Debug|Any CPU
@@ -15,4 +17,18 @@ Global
1517
GlobalSection(SolutionProperties) = preSolution
1618
HideSolutionNode = FALSE
1719
EndGlobalSection
20+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
21+
{80360538-3243-4FFD-9360-7D41A04C16E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
22+
{80360538-3243-4FFD-9360-7D41A04C16E5}.Debug|Any CPU.Build.0 = Debug|Any CPU
23+
{80360538-3243-4FFD-9360-7D41A04C16E5}.Debug|x64.ActiveCfg = Debug|x64
24+
{80360538-3243-4FFD-9360-7D41A04C16E5}.Debug|x64.Build.0 = Debug|x64
25+
{80360538-3243-4FFD-9360-7D41A04C16E5}.Debug|x86.ActiveCfg = Debug|x86
26+
{80360538-3243-4FFD-9360-7D41A04C16E5}.Debug|x86.Build.0 = Debug|x86
27+
{80360538-3243-4FFD-9360-7D41A04C16E5}.Release|Any CPU.ActiveCfg = Release|Any CPU
28+
{80360538-3243-4FFD-9360-7D41A04C16E5}.Release|Any CPU.Build.0 = Release|Any CPU
29+
{80360538-3243-4FFD-9360-7D41A04C16E5}.Release|x64.ActiveCfg = Release|x64
30+
{80360538-3243-4FFD-9360-7D41A04C16E5}.Release|x64.Build.0 = Release|x64
31+
{80360538-3243-4FFD-9360-7D41A04C16E5}.Release|x86.ActiveCfg = Release|x86
32+
{80360538-3243-4FFD-9360-7D41A04C16E5}.Release|x86.Build.0 = Release|x86
33+
EndGlobalSection
1834
EndGlobal
Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
2-
3-
<PropertyGroup>
4-
<TargetFramework>netstandard2.0</TargetFramework>
5-
</PropertyGroup>
6-
7-
</Project>
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
<PropertyGroup>
3+
<TargetFramework>netstandard2.0</TargetFramework>
4+
</PropertyGroup>
5+
<ItemGroup>
6+
<PackageReference Include="Microsoft.Extensions.Configuration" Version="2.1.0" />
7+
</ItemGroup>
8+
</Project>

C9S.Extensions.Configuration/ConfigurationRootExtensions.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,27 @@
11
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text.RegularExpressions;
5+
using Microsoft.Extensions.Configuration;
26

37
namespace C9S.Extensions.Configuration
48
{
59
public static class ConfigurationRootExtensions
610
{
7-
public static void ResolveVariables(this IConfigurationRoot configuration)
11+
private static Regex variableRegex = new Regex(@"\{{(?<var>[^}}]+)\}}");
12+
13+
public static void ResolveVariables(this IConfiguration configuration)
814
{
915
foreach (var configSection in configuration.GetChildren())
1016
{
1117
foreach (Match match in variableRegex.Matches(configSection.Value ?? ""))
1218
{
1319
var variable = match.Groups["var"].Value;
14-
var sections = new List<string>(variable.Split('.', System.StringSplitOptions.RemoveEmptyEntries));
20+
var sections = new List<string>(variable.Split(new [] { '.' }, StringSplitOptions.RemoveEmptyEntries));
1521
IConfigurationSection section = configSection;
1622
if (sections.Any())
1723
{
18-
section = Configuration.GetSection(sections[0]);
24+
section = configuration.GetSection(sections[0]);
1925
var key = sections.Last();
2026

2127
sections.RemoveAt(0);

0 commit comments

Comments
 (0)