Основы отражения - PullRequest
       1

Основы отражения

2 голосов
/ 17 февраля 2012

Я новичок в размышлениях и бью кирпичную стену, пытаясь понять типы.

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

Спасибо

Ответы [ 4 ]

3 голосов
/ 17 февраля 2012

Assembly в данном случае - это файл dll или exe.
Assembly.GetTypes () возвращает все типы в этой сборке.

Если у вас есть универсальный тип

public class MyType<T, V>
{
}

Type.GetGenericArguments возвращает T и V.

2 голосов
/ 17 февраля 2012

Вызов 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) ]
1 голос
/ 17 февраля 2012

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

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

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

1 голос
/ 17 февраля 2012

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...