[C#/ASP.NET MVC/.NETCORE] EnvironmentVariablesExtensions 클래스 : AddEnvironmentVariables 확장 메소드를 사용해 환경 변수 구성 공급자 등록하기

■ EnvironmentVariablesExtensions 클래스의 AddEnvironmentVariables 확장 메소드를 사용해 환경 변수 구성 공급자를 등록하는 방법을 보여준다.

Program.cs

using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;

namespace TestProject
{
/// <summary>
/// 프로그램
/// </summary>
public class Program
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Static
//////////////////////////////////////////////////////////////////////////////// Public

#region 프로그램 시작하기 – Main(argumentArray)

/// <summary>
/// 프로그램 시작하기
/// </summary>
/// <param name="argumentArray">인자 배열</param>
public static void Main(string[] argumentArray)
{
CreateHostBuilder(argumentArray).Build().Run();
}

#endregion
#region 호스트 빌더 생성하기 – CreateHostBuilder(argumentArray)

/// <summary>
/// 호스트 빌더 생성하기
/// </summary>
/// <param name="argumentArray">인자 배열</param>
/// <returns>호스트 빌더</returns>
public static IHostBuilder CreateHostBuilder(string[] argumentArray) =>
Host.CreateDefaultBuilder(argumentArray)
.ConfigureAppConfiguration
(
(context, configuration) =>
{
configuration.AddEnvironmentVariables(prefix : "TestPrefix_");
}
)
.ConfigureWebHostDefaults
(
builder =>
{
builder.UseStartup<Startup>();
}
);

#endregion
}
}

appsettings.json

{
"Position" :
{
"Title" : "Editor1",
"Name" : "Smith1"
},
"Logging" :
{
"LogLevel" :
{
"Default" : "Information",
"Microsoft" : "Warning",
"Microsoft.Hosting.Lifetime" : "Information"
}
},
"AllowedHosts" : "*"
}

Controllers/TestController.cs

using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using System.Text;

namespace TestProject.Controllers
{
/// <summary>
/// 테스트 컨트롤러
/// </summary>
public class TestController : Controller
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Field
////////////////////////////////////////////////////////////////////////////////////////// Private

#region Field

/// <summary>
/// 구성
/// </summary>
private IConfiguration configuration;

#endregion

//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public

#region 생성자 – TestController(configuration)

/// <summary>
/// 생성자
/// </summary>
/// <param name="configuration">구성</param>
public TestController(IConfiguration configuration)
{
this.configuration = configuration;
}

#endregion

//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Public

#region 인덱스 페이지 처리하기 – Index()

/// <summary>
/// 인덱스 페이지 처리하기
/// </summary>
/// <returns>액션 결과</returns>
public IActionResult Index()
{
string title = this.configuration["Position:Title"];
string name = this.configuration["Position:Name" ];

StringBuilder stringBuilder = new StringBuilder();

stringBuilder.AppendLine($"Title : {title}");
stringBuilder.AppendLine($"Name : {name}" );

return Content(stringBuilder.ToString());
}

#endregion
}
}

※ 테스트 방법

1. [명령 프롬프트]를 실행한다.
2. [명령 프롬프트]에서 실행할 .NET Core 프로젝트 디렉토리로 이동한다.
3. [명령 프롬프트]에서 아래 명령을 입력해 환경 변수를 설정한다.

실행 명령

4. [명령 프롬프트]에서 아래 명령을 입력해 프로그램을 실행한다.

실행 명령

TestProject.zip

Advertisements