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

TestProject.zip
다운로드

▶ Program.cs

using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using System.Collections.Generic;

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)
        {
            Dictionary<string, string> dictionary = new Dictionary<string, string>
            {
               { "TestKey"                 , "TestValue2"  },
               { "Position:Title"          , "Editor2"     },
               { "Position:Name"           , "Smith2"      },
               { "Logging:LogLevel:Default", "Information" }
            };

            return Host.CreateDefaultBuilder(argumentArray)
                .ConfigureAppConfiguration
                (
                    (context, configuration) =>
                    {
                        configuration.AddInMemoryCollection(dictionary);

                        configuration.AddEnvironmentVariables();

                        if(argumentArray != null)
                        {
                            configuration.AddCommandLine(argumentArray);
                        }
                    }
                )
                .ConfigureWebHostDefaults
                (
                    builder =>
                    {
                        builder.UseStartup<Startup>();
                    }
                );
        }

        #endregion
    }
}

 

728x90

 

▶ appsettings.json

{
    "TestKey"  : "TestValue1",
    "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 testKey                = this.configuration["TestKey"                 ];
            string title                  = this.configuration["Position:Title"          ];
            string name                   = this.configuration["Position:Name"           ];
            string loggingLogLevelDefault = this.configuration["Logging:LogLevel:Default"];

            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.AppendLine($"TestKey                      : {testKey}"               );
            stringBuilder.AppendLine($"Position / Title             : {title}"                 );
            stringBuilder.AppendLine($"Position / Name              : {name}"                  );
            stringBuilder.AppendLine($"Logging / LogLevel / Default : {loggingLogLevelDefault}");

            return Content(stringBuilder.ToString());
        }

        #endregion
    }
}
728x90
반응형
그리드형(광고전용)

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

[C#/ASP.NET MVC/.NETCORE] ConfigurationBinder 클래스 : Get 확장 메소드를 사용해 배열 바인딩하기  (0) 2020.10.22
[C#/ASP.NET MVC/.NETCORE] ConfigurationExtensions 클래스 : Exists 확장 메소드를 사용해 구성 하위 섹션 존재 여부 구하기  (0) 2020.10.22
[C#/ASP.NET MVC/.NETCORE] IConfiguration 인터페이스 : GetChildren 메소드를 사용해 자식 구성 하위 섹션 구하기  (0) 2020.10.22
[C#/ASP.NET MVC/.NETCORE] IConfiguration 인터페이스 : GetSection 메소드를 사용해 구성 하위 섹션 구하기  (0) 2020.10.22
[C#/ASP.NET MVC/.NETCORE] ConfigurationBinder 클래스 : GetValue 확장 메소드를 사용해 특정 키의 단일 설정 값 구하기  (0) 2020.10.22
[C#/ASP.NET MVC/.NETCORE] KeyPerFileConfigurationBuilderExtensions 클래스 : AddKeyPerFile 확장 메소드를 사용해 파일별 키 구성 공급자 등록하기  (0) 2020.10.22
[C#/ASP.NET MVC/.NETCORE] XmlConfigurationExtensions 클래스 : AddXmlFile 확장 메소드를 사용해 XML 구성 공급자 등록하기  (0) 2020.10.22
[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
Posted by icodebroker

댓글을 달아 주세요