Attribute(2)
-
6장 - 리플렉션2 (확장모듈 만들어보기)
리플렉션을 이용한 확장 모듈 구현 대개 플러그인을 구현한 소프트웨어는 다음과 같은 동작 양식을 가진다. 1. exe 프로그램이 실행되는 경로 아래에 확장 모듈을 담도록 약속된 폴더가 있는지 확인2. 해당 폴더가있다면 그 안에 dll 같은 파일이 있는지 검사하고 로드3. 파일이 로드됐으면 사전에 약속된 조건을 만족하는 타입이 있는지 검사4. 조건에 맞는 타입이 있다면 생성하고, 사전에 약속된 메서드를 실행 이 조건에 맞춰다음과 같이 규칙을 정한다. 1. 확장모듈은 exe아래에 [plugin] 폴더2. 플러그인 타입조건은 타입에 [PluginAttribute] 라는 이름의 특성이 부여되어 있어야 함3. 호출된 메서드는 [StartupAttribute] 라는 이름의 특성이 부여되어 있어야 함. 다만 입력인자와..
2014.12.24 -
5장 - 1
C# 1.0 특성 (attribute) /** author : Someone*/public class Everything{} 위 코드와 같은 주석을 남겼을때 이 주석은 빌드 과정을 거친 결과물인 exe / dll에는 전혀 남지 않게 된다.이런 문제를 해결해 주는 것이 특성이다. 닷넷의 어셈블리 파일에는 스스로는 기술하는 메타데이터가 있음어셈블리 내에서 구현하는 타입, 멤버등의 정보가 메타데이터임.특성도 이런 메타데이터로 분류. 특성은 사실 클래스.4장에 나왔던 [Flags] 특성은 FlagsAttribute 라는 클래스. 기본적으로 System.Attribute 클래스에서 파생된다. // 특성 클래스 정의 class AuthorAttribute : System.Attribute { } // [Author..
2014.11.21