첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170

TestProject.zip
다운로드

▶ 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
    }
}

 

728x90

 

▶ appsettings.json

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

 

300x250

 

▶ 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. [명령 프롬프트]에서 아래 명령을 입력해 환경 변수를 설정한다.

set TestPrefix_Position__Title=Editor2
set TestPrefix_Position__Name=Smith2

 

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

dotnet run
728x90
반응형
그리드형(광고전용)

'C# > ASP.NET MVC' 카테고리의 다른 글

[C#/ASP.NET MVC/.NETCORE] JsonConfigurationExtensions 클래스 : AddJsonFile 확장 메소드를 사용해 JSON 구성 공급자 등록하기  (0) 2020.10.21
[C#/ASP.NET MVC/.NETCORE] IniConfigurationExtensions 클래스 : AddIniFile 확장 메소드를 사용해 INI 구성 공급자 등록하기  (0) 2020.10.21
[C#/ASP.NET MVC/.NETCORE] 구성 공급자  (0) 2020.10.21
[C#/ASP.NET MVC/.NETCORE] CommandLineConfigurationExtensions 클래스 : AddCommandLine 확장 메소드에서 스위치 매핑을 사용해 명령줄 구성 공급자 등록하기  (0) 2020.10.21
[C#/ASP.NET MVC/.NETCORE] CommandLineConfigurationExtensions 클래스 : AddCommandLine 확장 메소드를 사용해 명령줄 구성 공급자 등록하기  (0) 2020.10.21
[C#/ASP.NET MVC/.NETCORE] OptionsConfigurationServiceCollectionExtensions 클래스 : Configure 확장 메소드를 사용해 설정 값을 서비스 컨테이너에 추가하기  (0) 2020.10.21
[C#/ASP.NET MVC/.NETCORE] ConfigurationBinder 클래스 : Get 확장 메소드를 사용해 특정 섹션의 설정 값 구하기  (0) 2020.10.21
[C#/ASP.NET MVC/.NETCORE] ConfigurationBinder 클래스 : Bind 확장 메소드를 사용해 특정 섹션의 설정 값을 객체와 바인딩하기  (0) 2020.10.21
[C#/ASP.NET MVC/.NETCORE] IConfiguration 인터페이스 : appsettings.json 파일 설정 값 구하기  (0) 2020.10.21
[C#/ASP.NET MVC/.NETCORE] IConfigurationRoot 인터페이스 : Providers 속성을 사용해 구성 공급자 조회하기  (0) 2020.10.21
Posted by icodebroker

댓글을 달아 주세요