[C#/ASP.NET MVC/.NETCORE] ConfigurationBinder 클래스 : Bind 확장 메소드를 사용해 특정 섹션의 설정 값을 객체와 바인딩하기
C#/ASP.NET MVC 2020. 10. 21. 21:01728x90
728x170
▶ appsettings.json
{
"Position" :
{
"Title" : "Editor",
"Name" : "Smith"
},
"TestKey" : "Test Value",
"Logging" :
{
"LogLevel" :
{
"Default" : "Information",
"Microsoft" : "Warning",
"Microsoft.Hosting.Lifetime" : "Information"
}
},
"AllowedHosts" : "*"
}
728x90
▶ Models/PositionOption.cs
namespace TestProject.Models
{
/// <summary>
/// 직위 옵션
/// </summary>
public class PositionOption
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Property
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 직함 - Title
/// <summary>
/// 직함
/// </summary>
public string Title { get; set; }
#endregion
#region 성명 - Name
/// <summary>
/// 성명
/// </summary>
public string Name { get; set; }
#endregion
}
}
300x250
▶ Controllers/TestController.cs
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using System.Text;
using TestProject.Models;
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()
{
PositionOption positionOption = new PositionOption();
this.configuration.GetSection("Position").Bind(positionOption);
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.AppendLine($"Title : {positionOption.Title}");
stringBuilder.AppendLine($"Name : {positionOption.Name}" );
return Content(stringBuilder.ToString());
}
#endregion
}
}
728x90
그리드형(광고전용)