2012-02-17 4 views
2

나는 반사에 익숙하고 유형을 이해하려고하는 벽돌 벽을 치고있다.반사 기초

어셈블리가 정확히 무엇을 의미하며 Assembly.GetTypes()은 무엇을 반환합니까? 또한 GetTypes() 명령에서 얻은 'type'에 GetGenericArguments()과 같은 것을 호출하면 정확히 무엇을합니까?

감사합니다.

+0

당신은 reflection' http://www.codeguru.com/csharp/csharp/cs_misc/reflection/article'에 대한 몇 가지 문서를 읽기 시작합니다. PHP/c4257 –

답변

2

.

Type.GetGenericArguments()을 호출하면 제네릭 형식에 지정된 모든 일반 매개 변수가 반환됩니다. 이것은 예를 들어 도움이 될, 깨끗한 설명하지 않을 수 있습니다 :

var type1 = typeof(Func<>); 
type1.GetGenericArguments(); // [ typeof(TResult) ] 

var type2 = typeof(Func<string>); 
type2.GetGenericArguments(); // [ typeof(String) ] 

var type3 = typeof(Tuple<string, int, bool>); 
type3.GetGenericArguments(); // [ typeof(String), typeof(Int32), typeof(Boolean) ] 
3

어셈블리는이 경우 dll 또는 exe 파일입니다.
Assembly.GetTypes()는 해당 어셈블리의 모든 유형을 반환합니다. 당신이 제네릭 형식을

public class MyType<T, V> 
{ 
} 

Type.GetGenericArguments이있는 경우

TV 반환합니다.

1

.NET에서 어셈블리는 클래스 라이브러리 (및 기타) 프로젝트 유형

Assembly.GetTypes() 해당 어셈블리의 모든 유형의 배열을 반환를 컴파일하여 생성되는 * .dll 파일입니다, 즉 어셈블리 내의 모든 클래스 & 구조체입니다.

더 읽을 Assembly.GetTypes() 반환 어셈블리에 정의 된 모든 유형 및 인터페이스를 호출