본문 바로가기

SIMPLE C#/라이브러리

[ arSetting ] XML파일을 이용하여 설정을 저장하자.

Source : https://gitlab.com/open-class/arSetting.git

Contact : tindevil@nate.com


이 클래스는 프로그램의 설정을 저장하는 기능을 합니다.

원래 c# 에는 Properties.setting 이라는 설정 파일을 제공 하지만 debug/release 모드 별로 파일이 별도 관리되며 흠 뭔가 실 사용에서 불편한 점이 있어 개발을 한 클래스 입니다.


테스트를 하려면 우선 하단의 Download 의 adSetting.Net4.dll 을 다운로드 받습니다.

.net framework 는 4.x 를 권장합니다.(다른 버져을 사용하려면 소스를 이용하여 빌드 해야 합니다)


사용을 하기위해서는 setting 클래스를 상속하는 클래스를 생성 해야 합니다.

저는 보통 CSetting.cs 클래스를 추가하고 그것을 상속합니다.

상속을 하면 오류가 2개 발생 하는 아래 코드를 참고하여 afterLoad 와 afterSave 를 Override 해주시면 됩니다. 


각각 설정파일을 읽고난 후 혹은 저장 후 처리할 작업을 나타 냅니다.


public class CSetting : arUtil.Setting
    {
        public string port { get; set; }
        public int baud { get; set; }
        public override void AfterLoad()
        {
            if(port == "" && baud == 0)
            {
                port = "COM1";
                baud = 9600;
            }
            //throw new NotImplementedException();
        }
        public override void AfterSave()
        {
            //throw new NotImplementedException();
        }
    }

위 소스를 보면 문자열 port 와 숫자 baud 를 설정에 생성했습니다.

afterLoad 를 통해서 데이터를 읽어왔는데 그 값이 없다면 기본값 com1/9600을 설정하게 했습니다.


아래는 메인 클래스에서의 사용예제 입니다.

class Program
    {
        static void Main(string[] args)
        {
            var setting = new CSetting();
            //파일명을 지정하지 않을경우 기본 setting.xml 이 됩니다.
            //setting.filename =  AppDomain.CurrentDomain.BaseDirectory + "setting.xml";  

            //설정파일의 자료를 메모리에 불러옵니다.
            setting.Load();

            //설정파일이 없다면 파일을 생성 합니다.
            if (System.IO.File.Exists(setting.filename) == false)
            {
                setting.Save();
                Console.WriteLine("설정파일 생성됨:" + setting.filename);
            }
            
            //설정값을 나열 합니다.
            Console.WriteLine(setting.ToString());

            Console.ReadKey();
        }
       
    }

위에서 생성한 CSetting 의 객체를 생성하여 1.Load() 를 한 후 없다면 생성(.Save())을 하고 있습니다.

설정 내부에 존재하는 모든 값을 출력하는 .ToString()을 이용하여 화면에 그 내용을 표시 하고 있습니다.



처음 실행에는 파일을 생성하며  두 번째 실행에는 위처럼 그 내용을 표시 하게 됩니다.



생성된 파일을 보면 위 처럼 XML형태로 데이터가 저장되어 있습니다.

또한 위 클래스를 Properties Grid 를 이용하면 쉽게 설정 화면을 구성할 수 있습니다.



ComponentModel 의 DisplayName , Description 을 이용하면 Properties Grid의 하단에 적절한 도움말을 표시할 수 있습니다. 단순한 설정이면 아주 쉽게 설정화면이 구성 됩니다.


감사합니다.



Download 

-------------------------

ArSetting.Net4.dll

'SIMPLE C# > 라이브러리' 카테고리의 다른 글

C# ini File Read/Write (UTF-8)  (0) 2018.04.14