본문 바로가기
Programming/C#

[C#] Attribute 활용

by ★용호★ 2013. 4. 15.

2013년 4월 15일

 

C++에서는 없던 생소한 C#의 기능! 이번엔 Attribute!

C#으로 짜여진 소스를 보다보면 클래스 위에 "[HTTPGet]"과 같은 형식의 문구를 볼 수가 있다.

나 같은 경우에는 클라이언트로부터 HTTP요청을 받을때 Get으로 받을 경우와 Post로 받을 경우에도 사용하고,

MVC에서 라우팅을 위한 액션 이름을 지정해줄 때도 사용했었는데 그냥 따라 쓰기만 하다가 구체적으로 알고 싶어서 찾아봤다.

 

우선 간단해보이지만 이 형식 자체가 클래스로 되어 있다.

구현부분을 따라가보면 Attribute 클래스를 상속받은 클래스로 구현되어 있는 것을 볼 수 있다.

 

 

클래스명에서 Attribute부분을 제외한 부분이 "[]"부분에 들어가게 되는 것!

클래스 내부에 메소드를 구현해서 메소드 명을 사용할 수도 있다.

 

이렇게 C#자체에 미리 구현되어 있는 Attribute들도 존재하고 사용자가 직접 만들어서 사용할 수도 있다.

직접 경험해보는 것이 좋을 듯 해서 Test 프로젝트를 만들어봤다.

 

▲ Attribute 구현부분

 

 ▲ Attribute 사용

 

위에서 [Test("Yongho's Attribute Test")] 부분을 통해 TestAttribute 클래스의 생성자로 스트링을 넘기게 된다.

그러고 나면 Attribute 구현부분에서 m_strName으로 해당 스트링을 셋팅하게 된다.

 

셋팅한 내용을 추후에 확인해보고 싶거나 이를 이용하여 내용을 구현하는 경우에는

Type객체를 이용하여 Attribute의 내용을 읽어들일 수 있다.

 

 

'Programming > C#' 카테고리의 다른 글

[ASP.NET MVC] InputStream의 Position 값 문제..  (0) 2013.05.20
[ASP.NET MVC] AsyncController 테스트  (1) 2013.04.22
[ASP.NET MVC] Controller 테스트  (0) 2013.04.16
[C#] 확장 메소드  (1) 2013.04.15

댓글