2012-02-17 3 views
2

Я новичок в отражении и нахожусь на кирпичной стене, пытаясь понять типы.Основы отражения

Что именно означает Ассамблея и что делает Assembly.GetTypes()? Также, если вы вызываете что-то вроде GetGenericArguments() на «type», которое вы получаете от команды GetTypes(), что это точно?

Благодаря

+0

Вы должны начать читать некоторые документы о 'reflection' http://www.codeguru.com/csharp/csharp/cs_misc/reflection/article. PHP/c4257 –

ответ

2

Вызов Assembly.GetTypes() возвращает все типы и интерфейсы, определенные в сборке.

Вызов 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 возвращает T и V.

1

Ассембли содержат код, который запускает или хранит информацию об объектах, то есть классах/структурах, которые имеют методы/свойства/события.

Тип - это класс, который описывает другие классы.

http://msdn.microsoft.com/en-us/library/system.type%28v=vs.71%29.aspx

1

Узел в .NET является * .dll файл, который создается путем компиляции библиотеки классов (и другие) типы проектов

Assembly.GetTypes() возвращает массив всех типов в этой сборке, то есть все классы & Структуры внутри сборки.

Дальнейшее чтение