Module.GetType Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает указанный тип.
Перегрузки
| Имя | Описание |
|---|---|
| GetType(String) |
Возвращает указанный тип, выполняя поиск с учетом регистра. |
| GetType(String, Boolean) |
Возвращает указанный тип, выполняя поиск модуля с заданным учетом регистра. |
| GetType(String, Boolean, Boolean) |
Возвращает указанный тип, указывая, следует ли выполнять поиск с учетом регистра модуля и вызывать исключение, если тип не удается найти. |
GetType(String)
Возвращает указанный тип, выполняя поиск с учетом регистра.
public:
virtual Type ^ GetType(System::String ^ className);
public virtual Type GetType(string className);
[System.Runtime.InteropServices.ComVisible(true)]
public virtual Type GetType(string className);
override this.GetType : string -> Type
[<System.Runtime.InteropServices.ComVisible(true)>]
override this.GetType : string -> Type
Public Overridable Function GetType (className As String) As Type
Параметры
- className
- String
Имя типа, который нужно найти. Имя должно быть полностью заполнено пространством имен.
Возвращаемое значение
Type Объект, представляющий заданный тип, если тип находится в этом модуле; в противном случае null.
- Атрибуты
Исключения
className равно null.
Вызывается инициализаторы классов, и создается исключение.
className — строка нулевой длины.
className требует зависимой сборки, которая не найдена.
className требует зависимой сборки, которая была найдена, но не может быть загружена.
–или–
Текущая сборка была загружена в контекст только для отражения и className требует зависимой сборки, которая не была предварительно загружена.
className требует зависимой сборки, но файл не является допустимой сборкой.
–или–
className требует зависимой сборки, которая была скомпилирована для версии среды выполнения позже, чем текущая загруженная версия.
Примеры
В следующем примере отображается имя типа в указанном модуле.
using System;
using System.Reflection;
namespace ReflectionModule_Examples
{
class MyMainClass
{
static void Main()
{
Module[] moduleArray;
moduleArray = typeof(MyMainClass).Assembly.GetModules(false);
//In a simple project with only one module, the module at index
// 0 will be the module containing these classes.
Module myModule = moduleArray[0];
Type myType;
myType = myModule.GetType("ReflectionModule_Examples.MyMainClass");
Console.WriteLine("Got type: {0}", myType.ToString());
}
}
}
Imports System.Reflection
'This code assumes that the root namespace is set to empty("").
Namespace ReflectionModule_Examples
Class MyMainClass
Shared Sub Main()
Dim moduleArray() As [Module]
moduleArray = GetType(MyMainClass).Assembly.GetModules(False)
'In a simple project with only one module, the module at index
' 0 will be the module containing these classes.
Dim myModule As [Module] = moduleArray(0)
Dim myType As Type
myType = myModule.GetType("ReflectionModule_Examples.MyMainClass")
Console.WriteLine("Got type: {0}", myType.ToString())
End Sub
End Class
End Namespace 'ReflectionModule_Examples
Комментарии
Note
Если тип переадресован в другую сборку, он по-прежнему возвращается этим методом. Сведения о переадресации типов см. в разделе " Пересылка типов" в среде CLR.
Тип можно получить из определенного модуля с помощью Module.GetType. Вызов Module.GetType модуля, содержащего манифест, не будет выполнять поиск по всей сборке. Чтобы получить тип из сборки, независимо от того, в каком модуле он находится, необходимо вызвать Assembly.GetType.
Применяется к
GetType(String, Boolean)
Возвращает указанный тип, выполняя поиск модуля с заданным учетом регистра.
public:
virtual Type ^ GetType(System::String ^ className, bool ignoreCase);
public virtual Type GetType(string className, bool ignoreCase);
[System.Runtime.InteropServices.ComVisible(true)]
public virtual Type GetType(string className, bool ignoreCase);
override this.GetType : string * bool -> Type
[<System.Runtime.InteropServices.ComVisible(true)>]
override this.GetType : string * bool -> Type
Public Overridable Function GetType (className As String, ignoreCase As Boolean) As Type
Параметры
- className
- String
Имя типа, который нужно найти. Имя должно быть полностью заполнено пространством имен.
- ignoreCase
- Boolean
true для поиска без учета регистра; falseв противном случае .
Возвращаемое значение
Type Объект, представляющий заданный тип, если тип находится в этом модуле; в противном случае null.
- Атрибуты
Исключения
className равно null.
Вызывается инициализаторы классов, и создается исключение.
className — строка нулевой длины.
className требует зависимой сборки, которая не найдена.
className требует зависимой сборки, которая была найдена, но не может быть загружена.
–или–
Текущая сборка была загружена в контекст только для отражения и className требует зависимой сборки, которая не была предварительно загружена.
className требует зависимой сборки, но файл не является допустимой сборкой.
–или–
className требует зависимой сборки, которая была скомпилирована для версии среды выполнения позже, чем текущая загруженная версия.
Примеры
В следующем примере отображается имя типа в указанном модуле, указывающее false для ignoreCase параметра, чтобы этот случай не был проигнорирован.
using System;
using System.Reflection;
namespace ReflectionModule_Examples
{
class MyMainClass
{
static void Main()
{
Module[] moduleArray;
moduleArray = typeof(MyMainClass).Assembly.GetModules(false);
//In a simple project with only one module, the module at index
// 0 will be the module containing these classes.
Module myModule = moduleArray[0];
Type myType;
myType = myModule.GetType("ReflectionModule_Examples.MyMainClass", false);
Console.WriteLine("Got type: {0}", myType.ToString());
}
}
}
Imports System.Reflection
'This code assumes that the root namespace is set to empty("").
Namespace ReflectionModule_Examples
Class MyMainClass
Shared Sub Main()
Dim moduleArray() As [Module]
moduleArray = GetType(MyMainClass).Assembly.GetModules(False)
'In a simple project with only one module, the module at index
' 0 will be the module containing these classes.
Dim myModule As [Module] = moduleArray(0)
Dim myType As Type
myType = myModule.GetType("ReflectionModule_Examples.MyMainClass", False)
Console.WriteLine("Got type: {0}", myType.ToString())
End Sub
End Class
End Namespace 'ReflectionModule_Examples
Комментарии
Note
Если тип переадресован в другую сборку, он по-прежнему возвращается этим методом. Сведения о переадресации типов см. в разделе " Пересылка типов" в среде CLR.
Тип можно получить из определенного модуля с помощью Module.GetType. Вызов Module.GetType модуля, содержащего манифест, не будет выполнять поиск по всей сборке. Чтобы получить тип из сборки, независимо от того, в каком модуле он находится, необходимо вызвать Assembly.GetType.
Применяется к
GetType(String, Boolean, Boolean)
Возвращает указанный тип, указывая, следует ли выполнять поиск с учетом регистра модуля и вызывать исключение, если тип не удается найти.
public:
virtual Type ^ GetType(System::String ^ className, bool throwOnError, bool ignoreCase);
public virtual Type GetType(string className, bool throwOnError, bool ignoreCase);
[System.Runtime.InteropServices.ComVisible(true)]
public virtual Type GetType(string className, bool throwOnError, bool ignoreCase);
override this.GetType : string * bool * bool -> Type
[<System.Runtime.InteropServices.ComVisible(true)>]
override this.GetType : string * bool * bool -> Type
Public Overridable Function GetType (className As String, throwOnError As Boolean, ignoreCase As Boolean) As Type
Параметры
- className
- String
Имя типа, который нужно найти. Имя должно быть полностью заполнено пространством имен.
- throwOnError
- Boolean
- ignoreCase
- Boolean
true для поиска без учета регистра; falseв противном случае .
Возвращаемое значение
Type Объект, представляющий указанный тип, если тип объявлен в этом модуле; в противном случае null.
- Атрибуты
Исключения
className равно null.
Вызывается инициализаторы классов, и создается исключение.
className — строка нулевой длины.
throwOnError is true, и тип не удается найти.
className требует зависимой сборки, которая не найдена.
className требует зависимой сборки, которая была найдена, но не может быть загружена.
–или–
Текущая сборка была загружена в контекст только для отражения и className требует зависимой сборки, которая не была предварительно загружена.
className требует зависимой сборки, но файл не является допустимой сборкой.
–или–
className требует зависимой сборки, которая была скомпилирована для версии среды выполнения позже, чем текущая загруженная версия.
Примеры
В следующем примере отображается имя типа в указанном модуле.
ignoreCase Параметры throwOnError указаны как false.
using System;
using System.Reflection;
namespace ReflectionModule_Examples
{
class MyMainClass
{
static void Main()
{
Module[] moduleArray;
moduleArray = typeof(MyMainClass).Assembly.GetModules(false);
//In a simple project with only one module, the module at index
// 0 will be the module containing this class.
Module myModule = moduleArray[0];
Type myType;
myType = myModule.GetType("ReflectionModule_Examples.MyMainClass", false, false);
Console.WriteLine("Got type: {0}", myType.ToString());
}
}
}
Imports System.Reflection
'This code assumes that the root namespace is set to empty("").
Namespace ReflectionModule_Examples
Class MyMainClass
Shared Sub Main()
Dim moduleArray() As [Module]
moduleArray = GetType(MyMainClass).Assembly.GetModules(False)
'In a simple project with only one module, the module at index
' 0 will be the module containing this class.
Dim myModule As [Module] = moduleArray(0)
Dim myType As Type
myType = myModule.GetType("ReflectionModule_Examples.MyMainClass", False, False)
Console.WriteLine("Got type: {0}", myType.ToString())
End Sub
End Class
End Namespace 'ReflectionModule_Examples
Комментарии
Параметр throwOnError влияет только на то, что происходит, если тип не найден. Это не влияет на другие исключения, которые могут быть брошены. В частности, если тип найден, но не может быть загружен, TypeLoadException может быть создан даже в том случаеfalsethrowOnError.
Note
Если тип переадресован в другую сборку, он по-прежнему возвращается этим методом. Сведения о переадресации типов см. в разделе " Пересылка типов" в среде CLR.
Тип можно получить из определенного модуля с помощью Module.GetType. Вызов Module.GetType модуля, содержащего манифест, не будет выполнять поиск по всей сборке. Чтобы получить тип из сборки, независимо от того, в каком модуле он находится, необходимо вызвать Assembly.GetType.