반응형
1. App.Config 사용 전 참조 추가하기
App.Config를 사용하고 싶다면 ConfigurationManager를 추가해야 한다.
솔루션 탐색기에서 참조-오른쪽 클릭-참조 추가를 눌러 System.Configuration을 체크하고 저장한다.
[C#][기초] App.config 활용하기
설정 정보 활용 프로그램을 구현해서 사용하다가 보면 프로그램을 수정하지 않고 동적으로 입력 값을 변환하여 사용하고 싶을 때가 있다. 그럴 때 프로그램의 시작 인자(parameter)를 활용한다. 하
joseph-han.tistory.com
2. App.Config의 형태
App.Config는 기본적으로 이러한 형태로 되어 있다.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
3. App.Config 활용
App.Config를 사용하고 싶다면 <appSettings> 태그 내에 <add key="키값" value="밸류값" />을 추가해주면 된다.
실제 코드에서는 아래와 같이 접근할 수 있다.
string value = ConfigurationManager.AppSettings["키값"];
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="loggerName" value="console" />
<add key="loggerName2" value="file" /
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
namespace TestInterface
{
public class Program
{
static void Main(string[] args)
{
// 1. app.config에서 logtype 정보를 읽어와서 Logger를 만들도록 구현하기
var loggerName = "console";
//Type t = GetType("System.Int32");
//Console.WriteLine(t.GetType()); // "System.Int32"
Type logType = Type.GetType(ConfigurationManager.AppSettings[loggerName]);
ILogger log = (ILogger)Activator.CreateInstance(logType);
// ILogger log = LoggerManager.LoggerFactory(logType);
var program = new ClimateMonitor(log);
program.Start();
var loggerName2 = "file";
Type logType2 = Type.GetType(ConfigurationManager.AppSettings[loggerName2]);
ILogger log2 = (ILogger)Activator.CreateInstance(logType2);
// ILogger log2 = LoggerManager.LoggerFactory(logType2);
var program2 = new ClimateMonitor(log2);
program2.Start();
}
}
}
App.Config에서 값을 읽어오면 기본적으로는 string 형태이다.
이를 int 등 다른 형식이나 객체 형식으로 바꾸려면 int.Parse나 Activator.CreateInstance 등을 사용하면 된다.
[C#] 객체명 문자열을 실제 객체로 바꾸는 방법(Late Binding)
Type t = Type.GetType("MyNamespace.asdf"); asdf a = (asdf)Activator.CreateInstance(t);
expert0226.tistory.com
아래는 타입을 확인하는 GetType() 메서드이다.
Type.GetType 메서드 (System)
지정된 형식을 나타내는 Type 개체를 가져옵니다.
learn.microsoft.com
반응형
'C#' 카테고리의 다른 글
[C#] Convert DataSet to List (0) | 2023.05.10 |
---|---|
[C#] DateTime 출력 (0) | 2023.04.28 |
[C#] 업캐스팅과 다운캐스팅 (0) | 2023.04.25 |
[C#] 복잡한 리스트 중복제거 (0) | 2023.04.20 |
[C#] 리스트 주요 함수 정리 (0) | 2023.04.19 |