상세 컨텐츠

본문 제목

C# - get enum description

공부/C# 프로그래밍

by 심개의 개발노트 2020. 3. 1. 21:24

본문

반응형

C#에서 description attribute를 사용할때가 가끔 있는데요. enum을 정의하고 해당 value에 description를 정의하는 경우가 있고, 이를 가져오는 기능이 필요해서 description을 가져오는 함수를 만들어봤습니다.

그전에 enum에서 description을 정의하는 방법을 알아보도록 하겠습니다. enum에 있는 각 요소들에 [Description("  ")] 이렇게 적어주시면 됩니다. 그리고 "" 사이에 자신이 원하는 글자를 넣어주면 됩니다.

Color 를 기록하는 enum이 있다고 할때, 해당 enum를 표현하기 위한 Description을 사용한다고 하면 아래와 같이 표현할 수 있습니다.

그렇다면 Description을 가져오는 함수를 알아보도록 하겠습니다.

Enum 클래스에 대해서 확장메서드를 구현하였습니다. 이렇게 하게 되면 모든 Enum에 대해서 Description을 가져오게 됩니다. 만약에 Description이 정의되지 않았다면, 해당 Enum 클래스의 ToString() 값이 반환되게 됩니다. 

해당 함수는 Reflection을 이용해서 Field를 가져와서 CustomAttributes를 가져오는 기능입니다. 내용은 간단하고 구글에서 검색하면 쉽게 찾을 수 있는 내용입니다. 

 

반응형

관련글 더보기

댓글 영역