어튜리뷰트 - (Atturibute) [C#]

공부/C#  2012.09.23 08:18

안녕하세요. 명월입니다.

이번 포스트는 어트리뷰트에 대해 공부하겠습니다. 어트리뷰터 항목은 C# API 어트리뷰트와 사용자 어트리뷰트로 나뉘는데 이번 포스트는 C# API 어트리 뷰트에 대해 공부를 하겠습니다.


어트리뷰트의 경우에는 형태적으로는 자바의 어노테이션과 비슷하게 생겼지만, 사용용법은 전혀 다릅니다. C#의 어트리뷰트는 클래스 또는 함수를 실행하면서 필요한 정보를 정의해 좋은 것으로 생각하면 될 듯싶네요. C# API에서는 기본적인 형태를 제공하고 있습니다.



기본적인 어트리뷰트 종류입니다.


어트리뷰터 설명
CLSCompliant 어셈블리의 모든 형을 CLS에 맞춰 사용
Obsolete 사용할 수 없는 요소라는 것을 나타냄
Conditional 전처리기 식별자에 의해 실행 여부를 결정
DllImport 비관리 코드 형태로 실행되는 메서드를 나타냄
Dispid COM의 DISpatch ID를 나타냄
Serializable 클래스 또는 구조체가 직렬화할 수 있음을 나타냄
Transaction 트랜잭션이 무시되거나 지원 가능한가를 나타냄

저도 위 어트리뷰트 중에서는 DllImport만 사용해 봤습니다.
DllImport의 경우는 보통 C, C++에서 작성한 라이브러리 파일(dll)파일을 가져와서 사용할 때 사용됩니다.


링크 - C++ Dll 만들어서 C#에서 사용하기 (마샬링)[C++]




C++의 객체는 거의 C#에 구현이 되어있기 때문에 기본 CApi 객체를 가져와 사용하는 것은 드뭅니다. (호환성 문제도 있으므로 비권장이기도 합니다)
그러나 C#은 메모리가 .NetFramework에 한정이 되어있기 때문에 그 이상을 벗어나는 작업을 하기가 힘듭니다. 예를 들면 Form 화면에서 작업표시줄 바꾸기, 전역 후킹, 패킷 감시 등을 C#만으로 구현하기에 한계가 분명 있습니다. 그럴 땐 C++ 객체를 가져오든가 C / C++에서 작성을 하여 C#모듈로 사용하는 것도 하나의 방법이겠습니다.

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

스레드 - ThreadPool 클래스 [C#]  (0) 2012.09.27
쓰레드 - Thread 클래스 [C#]  (4) 2012.09.26
String 클래스 와 StringBuilder 클래스 차이 [C#]  (7) 2012.09.25
MSDN - MS계 언어의 SDK [C#]  (0) 2012.09.24
어튜리뷰트 - (Atturibute) [C#]  (2) 2012.09.23
예외 처리 - [C#]  (0) 2012.09.22
이벤트(Event) - [C#]  (0) 2012.09.21
델리 게이트(delegate) - [C#]  (0) 2012.09.20
인터페이스 [C#]  (0) 2012.09.19

댓글 2개가 달렸습니다.
댓글쓰기

  1. 2012.10.04 13:43 |  수정/삭제  댓글쓰기

    비밀댓글입니다

    • 明月 v명월v
      2012.10.04 16:43 신고 |  수정/삭제

      저희 블로그에 찾아주셔서 감사합니다.
      아직은 부족한 점이 많지만 앞으로도 지켜봐 주시고 좋은 소통이 되었으면 합니다.