2010-08-12 2 views
1

나는 "안녕하세요 세상"응용 프로그램을 작성하는 "재미있는"과제를 받았습니다. 유일한 조건은 반사를 사용한다는 것입니다.이 조건을 충족시켜야하는 구체적인 방법은 없지만 영리하거나 우아하거나 '멋진'용도는 재미 있습니다. 외부 라이브러리를 삽입하거나 IHelloWorldMessageProvider 컴포지션 컨테이너 모조를 수행하는 것 외에 많은 옵션이 없습니다. 누군가 나를 돌봐 주는가?C#에서 hello world를 작성하는 작업이 주어진 경우 ... 리플렉션을 사용하여 리플렉션을 사용하는 영리한 방법은 무엇입니까?

답변

3

개인적으로 ... 내가 동적 컴파일로 이동해야합니다. 완전한 예제를 쓸 시간이 없지만 워크 플로는 다음과 같이됩니다.

  1. 시작 응용 프로그램.

  2. Hello World C# 코드가 포함 된 문자열을 만듭니다.

  3. 는 런타임에 DLL을 만들기 위해 응용 프로그램에서 컴파일러를 호출합니다.

  4. 반사를 사용하여 생성 된 어셈블리를로드합니다.

  5. 는 적절한 유형 및 방법 가져 오기 ... 다음 (따라서 "안녕하세요"라는 메시지가 표시)를 호출합니다.

체크 아웃 더 동적 컴파일의 과정을 설명 페이지 :

Executing Dynamic Code in .NET

+0

항상 재미 있습니다. MEF를 활용하는 것이 반영으로 간주 될까요? MEF는 리플렉션을 사용하여 작동하므로 왜 보이지 않습니다. – Idahovandal256

1

문자열 "안녕하세요 세계는"응용 프로그램을 구현하는 클래스를 검사하여 런타임에 동적으로 만들 수 있습니다. 말 : 나는 반사를 사용하여 복잡하고 흥미로운 안녕하세요 세계 응용 프로그램을 작성하기를 원한다면 class hello { void world() {} }

+0

지루한 상점을! 더 흥미로운? – Idahovandal256

관련 문제