본문 바로가기

C#

[C#] App.Config 활용

반응형

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