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

, чтобы вызвать исключение, если тип не удается найти; значение a

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.

Применяется к