[ASP.NET CORE/MVC] 홈페이지 제작 #3 파일 읽기로 간단하게 init파일 모듈 만들기(프로퍼티 파일)
프로젝트 환경
OS : Windows 10
IDE : Visual Studio Code 1.69.1
.Net SDK : 6.0.302
.Net Runtime : .NetCore.App 6.0.7
DataBase : PostgreSQL 14
안녕하세요 미나라이 입니다.
이번에는 프로젝트 개발을 하면서 간단한 설정값 등을 저장 할 수 있는 init파일을 만들어 보겠습니다.
ASP.NET에서는 기본적으로 이러한 설정파일을 관리해주는 기능을 제공해 주고 있는데요
위의 기능을 사용하지 않고 이번에는 단순하게 파일 읽기로 기능을 구현해 보도록 하겠습니다.
기본 사양
파일명 : init.config
인코딩 : utf-8
1. KEY==VALUE로 구분 2. 취득한 값은 Dictionary<String, String> 형식으로 저장 3. KEY와 VALUE사이에 공백 존재시 공백 제거 4. #로 시작하는 행은 주석처리 5. 중복된 KEY가 존재할 경우 상위에 지정한 값을 보존(하위값은 버려짐) 6. 파일의 내용을 수정 할 경우 어플리케이션 재시작 필요 |
경로지정
먼저 Const파일을 하나 만들어서 init.config파일을 보존할 경로를 지정합니다.
저는 프로젝트의 루트 경로에 보존했습니다.
Const.cs
namespace CinemaProject.Common;
public static class Const
{
/// <summary>
/// Init Config File Path
/// </summary>
public const String INIT_CONFIG_PATH = @"init.config";
/// <summary>
/// Init Config Const(Sample)
/// </summary>
public static String DB_CONFIG = "DBCONFIG";
}
init파일생성
그냥 아무 문서파일을 생성해서 파일명을 바꿔주고 내용을 추가하였습니다.
init.config
Config클래스 작성
init.config파일의 내용을 읽고 내용을 취득 할 수 있는 클래스를 작성해줍니다.
Config.cs
using System.Text;
using log4net;
namespace CinemaProject.Common;
public static class Config
{
private static readonly log4net.ILog logger = LogManager.GetLogger(typeof(Config));
public static Dictionary<String, String>? INIT_CONFIG;
/// <summary>
/// Read IninConfig
/// </summary>
public static void ReadInitConfig() {
try
{
logger.Info("===== Start Read InitConfig =====");
using(StreamReader file = new StreamReader(Const.INIT_CONFIG_PATH, Encoding.GetEncoding("utf-8")))
{
String? line;
INIT_CONFIG = new Dictionary<string, string>();
while((line = file.ReadLine()) != null)
{
if(String.IsNullOrEmpty(line)) continue;
if(line.StartsWith("#")) continue;
String[] item = line.Split("==");
String key = item[0].Trim();
String value = item[1].Trim();
if(!INIT_CONFIG.ContainsKey(item[0]))
{
INIT_CONFIG.Add(key, value);
}
}
}
logger.Info("===== End Read InitConfig =====");
}
catch (Exception)
{
logger.Info("===== Fail Read InitConfig =====");
throw;
}
}
/// <summary>
/// Get ConfigValue
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public static string GetConfigValue(string key) {
string value = string.Empty;
if(INIT_CONFIG != null)
{
if(INIT_CONFIG[key] != null)
{
value = INIT_CONFIG[key];
}
}
return value;
}
}
소스 중간에 로그를 출력하는 부분을 기술하였는데 로그 출력 방법은 아래 포스팅을 참고 해 주세요
init파일 읽기
ASP.NET MVC프로젝트가 처음 기동될 때 읽을 수 있도록 아래 파일에 설정하도록 합니다.
Program.cs
// Read initConfig
Config.ReadInitConfig();
init파일에 지정한 값 취득하기
아래와 같은 방법으로 취득하면 됩니다.
Config.GetConfigValue("TEST");
출력값 확인
내용을 잘 읽었는지 로그를 출력해서 확인 해 봅시다.
init.config
init.config에 지정한 값이 log에잘 출력되는것을 확인 할 수 있습니다.
이상으로 간단하게 ASP.NET CORE MVC에서 init파일을 만드는 방법에 대해서 알아보았습니다.
'ASP.NET&C# > ASP.NET MVC' 카테고리의 다른 글
[ASP.NET CORE/MVC] 홈페이지 제작 #4 베이스 컨트롤러 / 싱글톤 패턴을 이용해서 서비스 만들기 (0) | 2022.08.14 |
---|---|
[ASP.NET CORE/MVC] 홈페이지 제작 #2 Log4net설정하기 (0) | 2022.07.24 |
[ASP.NET CORE/MVC] 홈페이지 제작 #1 개발 환경 구축 (0) | 2022.07.24 |
[ASP.NET/MVC CORE] #15 세션으로 로그인 페이지를 구현 (0) | 2021.12.26 |
[ASP.NET/MVC CORE] #14 MIME 맵핑하기 (0) | 2021.12.21 |