첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
본 블로그는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 블로그 콘텐츠 향상을 위해 쓰여집니다.

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> switchMappingDictionary = new Dictionary<string, string>()
            {
                { "-k1"   , "key1" },
                { "-k2"   , "key2" },
                { "--alt3", "key3" },
                { "--alt4", "key4" },
                { "--alt5", "key5" },
                { "--alt6", "key6" },
            };

            return Host.CreateDefaultBuilder(argumentArray)
                .ConfigureAppConfiguration
                (
                    (context, configuration) =>
                    {
                        configuration.AddCommandLine(argumentArray, switchMappingDictionary);
                    }
                )
                .ConfigureWebHostDefaults
                (
                    builder =>
                    {
                        builder.UseStartup<Startup>();
                    }
                );
        }

        #endregion
    }
}

 

▶ appsettings.json

{
    "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 key1 = this.configuration["key1"];
            string key2 = this.configuration["key2"];
            string key3 = this.configuration["key3"];
            string key4 = this.configuration["key4"];
            string key5 = this.configuration["key5"];
            string key6 = this.configuration["key6"];

            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.AppendLine($"Key 1 : {key1}");
            stringBuilder.AppendLine($"Key 2 : {key2}");
            stringBuilder.AppendLine($"Key 3 : {key3}");
            stringBuilder.AppendLine($"Key 4 : {key4}");
            stringBuilder.AppendLine($"Key 5 : {key5}");
            stringBuilder.AppendLine($"Key 6 : {key6}");

            return Content(stringBuilder.ToString());
        }

        #endregion
    }
}

 

※ 테스트 방법

1. [명령 프롬프트]를 실행한다.

2. [명령 프롬프트]에서 실행할 .NET Core 프로젝트 디렉토리로 이동한다.

3. [명령 프롬프트]에서 아래 명령을 실행한다.

dotnet run -k1 value1 -k2 value2 --alt3=value3 /alt4=value4 --alt5 value5 /alt6 value6
728x90
반응형
그리드형

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

[.NETCORE/ASP.NET MVC] KeyPerFileConfigurationBuilderExtensions 클래스 : AddKeyPerFile 확장 메소드를 사용해 파일별 키 구성 공급자 등록하기  (0) 2020.10.22
[.NETCORE/ASP.NET MVC] XmlConfigurationExtensions 클래스 : AddXmlFile 확장 메소드를 사용해 XML 구성 공급자 등록하기  (0) 2020.10.22
[.NETCORE/ASP.NET MVC] JsonConfigurationExtensions 클래스 : AddJsonFile 확장 메소드를 사용해 JSON 구성 공급자 등록하기  (0) 2020.10.21
[.NETCORE/ASP.NET MVC] IniConfigurationExtensions 클래스 : AddIniFile 확장 메소드를 사용해 INI 구성 공급자 등록하기  (0) 2020.10.21
[.NETCORE/ASP.NET MVC] 구성 공급자  (0) 2020.10.21
[.NETCORE/ASP.NET MVC] CommandLineConfigurationExtensions 클래스 : AddCommandLine 확장 메소드에서 스위치 매핑을 사용해 명령줄 구성 공급자 등록하기  (0) 2020.10.21
[.NETCORE/ASP.NET MVC] CommandLineConfigurationExtensions 클래스 : AddCommandLine 확장 메소드를 사용해 명령줄 구성 공급자 등록하기  (0) 2020.10.21
[.NETCORE/ASP.NET MVC] EnvironmentVariablesExtensions 클래스 : AddEnvironmentVariables 확장 메소드를 사용해 환경 변수 구성 공급자 등록하기  (0) 2020.10.21
[.NETCORE/ASP.NET MVC] OptionsConfigurationServiceCollectionExtensions 클래스 : Configure 확장 메소드를 사용해 설정 값을 서비스 컨테이너에 추가하기  (0) 2020.10.21
[.NETCORE/ASP.NET MVC] ConfigurationBinder 클래스 : Get 확장 메소드를 사용해 특정 섹션의 설정 값 구하기  (0) 2020.10.21
[.NETCORE/ASP.NET MVC] ConfigurationBinder 클래스 : Bind 확장 메소드를 사용해 특정 섹션의 설정 값을 객체와 바인딩하기  (0) 2020.10.21
Posted by 사용자 icodebroker

댓글을 달아 주세요