Module.GetType Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает указанный тип.
Перегрузки
GetType(String) |
Возвращает заданный тип (выполняет поиск с учетом регистра). |
GetType(String, Boolean) |
Возвращает указанный тип, выполняя поиск в модуле с заданным требованием к учету регистра. |
GetType(String, Boolean, Boolean) |
Возвращает указанный тип, определяя, следует ли учитывать регистр при поиске модуля и должно ли создаваться исключение, если не удалось обнаружить этот тип. |
GetType(String)
- Исходный код:
- Module.cs
- Исходный код:
- Module.cs
- Исходный код:
- Module.cs
Возвращает заданный тип (выполняет поиск с учетом регистра).
public:
virtual Type ^ GetType(System::String ^ className);
public virtual Type? GetType (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 namespace System;
using namespace System::Reflection;
namespace ReflectionModule_Examples
{
public ref class MyMainClass{};
}
int main()
{
array<Module^>^moduleArray;
moduleArray = ReflectionModule_Examples::MyMainClass::typeid->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 );
}
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
Комментарии
Примечание
Если тип был переадресован в другую сборку, он по-прежнему возвращается этим методом. Сведения о переадресации типов см. в разделе Переадресация типов в СРЕДЕ CLR.
Тип можно получить из определенного модуля с помощью Module.GetType. Вызов Module.GetType в модуле, содержащем манифест, не будет выполнять поиск по всей сборке. Чтобы получить тип из сборки, независимо от того, в каком модуле он находится, необходимо вызвать .Assembly.GetType
Применяется к
GetType(String, Boolean)
- Исходный код:
- Module.cs
- Исходный код:
- Module.cs
- Исходный код:
- Module.cs
Возвращает указанный тип, выполняя поиск в модуле с заданным требованием к учету регистра.
public:
virtual Type ^ GetType(System::String ^ className, bool ignoreCase);
public virtual Type? GetType (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 namespace System;
using namespace System::Reflection;
namespace ReflectionModule_Examples
{
public ref class MyMainClass{};
}
int main()
{
array<Module^>^moduleArray;
moduleArray = ReflectionModule_Examples::MyMainClass::typeid->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 );
}
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
Комментарии
Примечание
Если тип был переадресован в другую сборку, он по-прежнему возвращается этим методом. Сведения о переадресации типов см. в разделе Переадресация типов в СРЕДЕ CLR.
Тип можно получить из определенного модуля с помощью Module.GetType. Вызов Module.GetType в модуле, содержащем манифест, не будет выполнять поиск по всей сборке. Чтобы получить тип из сборки, независимо от того, в каком модуле он находится, необходимо вызвать .Assembly.GetType
Применяется к
GetType(String, Boolean, Boolean)
- Исходный код:
- Module.cs
- Исходный код:
- Module.cs
- Исходный код:
- Module.cs
Возвращает указанный тип, определяя, следует ли учитывать регистр при поиске модуля и должно ли создаваться исключение, если не удалось обнаружить этот тип.
public:
virtual Type ^ GetType(System::String ^ className, bool throwOnError, bool ignoreCase);
public virtual Type GetType (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
Значение true
, чтобы создать исключение, если тип не удается найти; значение false
, чтобы вернуть значение null
.
- ignoreCase
- Boolean
Значение true
для поиска без учета регистра. В противном случае используется значение false
.
Возвращаемое значение
Объект Type, представляющий указанный тип, если тип был объявлен в этом модуле; в противном случае — null
.
- Атрибуты
Исключения
className
имеет значение null
.
Вызываются инициализаторы класса и создается исключение.
className
представляет собой строку нулевой длины.
throwOnError
является true
, не удается найти тип.
Для className
требуется зависимая сборка, которую не удалось найти.
Для className
требуется зависимая сборка, которая была найдена, но ее не удалось загрузить.
-или-
Текущая сборка была загружена в контекст только для отражения, а для className
требуется зависимая сборка, которая не была предварительно загружена.
Для className
требуется зависимая сборка, однако файл не является допустимой сборкой.
-или-
Для className
требуется зависимая сборка, которая была скомпилирована для версии среды выполнения более поздней, чем текущая загруженная версия.
Примеры
В следующем примере отображается имя типа в указанном модуле. Параметры throwOnError
и ignoreCase
указываются как false
.
using namespace System;
using namespace System::Reflection;
namespace ReflectionModule_Examples
{
public ref class MyMainClass{};
}
int main()
{
array<Module^>^moduleArray;
moduleArray = ReflectionModule_Examples::MyMainClass::typeid->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 );
}
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 может вызываться, даже если throwOnError
имеет значение false
.
Примечание
Если тип был переадресован в другую сборку, он по-прежнему возвращается этим методом. Сведения о переадресации типов см. в разделе Переадресация типов в СРЕДЕ CLR.
Тип можно получить из определенного модуля с помощью Module.GetType. Вызов Module.GetType в модуле, содержащем манифест, не будет выполнять поиск по всей сборке. Чтобы получить тип из сборки, независимо от того, в каком модуле он находится, необходимо вызвать .Assembly.GetType