[C#] XML Serialization, Deserialize

2020. 12. 7. 10:55·프로그래밍/C#

clientConfig.xml

<?xml version="1.0" encoding="utf-8" ?>
<config>
	<server>
		<ip>127.0.0.1</ip>
		<port>8080</port>
	</server>

	<application width="100" height="100" />
</config>

Xml 파일 읽어서 사용할 객체

[XmlRoot("config")]
public class ClientConfigModel
{
    [XmlElement("server")]
    public ConfigServer server { get; set; }

    [XmlElement("application")]
    public ConfigApplication application { get; set; }
}

[Serializable()]
public class ConfigServer
{
    [XmlElement("ip")]
    public string ip { get; set; }

    [XmlElement("port")]
    public int port { get; set; }
}

[Serializable()]
public class ConfigApplication
{
    [XmlAttribute("width")]
    public int width { get; set; }

    [XmlAttribute("height")]
    public int height { get; set; }
}

 

데이터 읽어오기

/// <summary>
/// 설정파일 읽어오기
/// </summary>
/// <param name="path">설정파일경로</param>
public static void Read(string path)
{
    if (System.IO.File.Exists(path))
    {
        using (var sr = new StreamReader(path))
        {
            var xs = new XmlSerializer(typeof(Model.ClientConfigModel));
            var configModel = (Model.ClientConfigModel)xs.Deserialize(sr);

            Console.WriteLine("ip : {0}", configModel.server.ip);
            Console.WriteLine("port : {0}", configModel.server.port);

            Console.WriteLine("width : {0}", configModel.application.width);
            Console.WriteLine("height : {0}", configModel.application.height);

        }
    }
}

 

Console 결과

 

반응형
저작자표시 (새창열림)

'프로그래밍 > C#' 카테고리의 다른 글

[C#] 프로세스 이름 기준으로 종료 시키기 - kill by name  (0) 2021.04.22
[C#] 태블릿모드에서 가상키보드 호출시 폼크기 자동으로 변경  (0) 2021.02.17
[C#] SQLite Table 존재유무 체크 하고 생성하기  (0) 2019.10.14
[C#] Excel Error 0x800ac472 원인  (0) 2019.06.21
[C#] SQLite 맛보기 - DB파일 생성  (0) 2019.04.05
'프로그래밍/C#' 카테고리의 다른 글
  • [C#] 프로세스 이름 기준으로 종료 시키기 - kill by name
  • [C#] 태블릿모드에서 가상키보드 호출시 폼크기 자동으로 변경
  • [C#] SQLite Table 존재유무 체크 하고 생성하기
  • [C#] Excel Error 0x800ac472 원인
큐레이트
큐레이트
저의 일상을 기록하는 블로그입니다.
  • 큐레이트
    큐레이트의 기록
    큐레이트
  • 전체
    오늘
    어제
    • 분류 전체보기 (187) N
      • 국내여행 (37)
        • 애견여행 (33)
        • 맛집여행 (2)
      • 프로그래밍 (82) N
        • C# (24)
        • Python (24) N
        • Flutter (5)
        • .NET (4)
        • ASP (7)
        • Html (5)
        • Tomcat (2)
        • typescript (3)
        • etc (8)
      • 일상생활 (68)
        • 다이어트일지 (67)
        • 기타 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 복이랑스마트스토어
    • 복이랑블로그
  • 공지사항

    • 블로그 소개
  • 인기 글

  • 태그

    자동매매
    애견여행
    자동화
    오블완
    운동일지
    입력폼
    제주도
    국내여행
    일상생활
    체중기록
    FastAPI
    HTML
    애견동반여행
    제주도 애견동반
    C#
    Flutter
    다이어트 일지
    오운완
    식단
    식단관리
    애견동반
    pt
    티스토리챌린지
    파이썬
    DevExpress
    제주도애견동반여행
    다이어트일지
    iis
    다이어트
    Python
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
큐레이트
[C#] XML Serialization, Deserialize
상단으로

티스토리툴바