Module.GetType 方法

定义

返回指定的类型。

重载

名称 说明
GetType(String)

返回指定类型,执行区分大小写的搜索。

GetType(String, Boolean)

返回指定类型,使用指定的大小写搜索模块。

GetType(String, Boolean, Boolean)

返回指定的类型,指定是否对模块进行区分大小写的搜索,以及是否在找不到该类型时引发异常。

GetType(String)

Source:
Module.cs
Source:
Module.cs
Source:
Module.cs
Source:
Module.cs
Source:
Module.cs

返回指定类型,执行区分大小写的搜索。

public:
 virtual Type ^ GetType(System::String ^ className);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types might be removed by trimming. If the type name is a string literal, consider using Type.GetType instead.")]
public virtual Type? GetType(string className);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types might be removed")]
public virtual Type? GetType(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);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types might be removed by trimming. If the type name is a string literal, consider using Type.GetType instead.")>]
override this.GetType : string -> Type
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types might be removed")>]
override this.GetType : string -> Type
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

属性

例外

classNamenull

调用类初始值设定项并引发异常。

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

注解

注释

如果类型已转发到另一个程序集,此方法仍返回该类型。 有关类型转发的信息,请参阅 公共语言运行时中的类型转发

可以使用特定模块 Module.GetType检索类型。 对包含清单的模块进行调用 Module.GetType 不会搜索整个程序集。 若要从程序集中检索类型,无论它位于哪个模块中,都必须调用 Assembly.GetType

适用于

GetType(String, Boolean)

Source:
Module.cs
Source:
Module.cs
Source:
Module.cs
Source:
Module.cs
Source:
Module.cs

返回指定类型,使用指定的大小写搜索模块。

public:
 virtual Type ^ GetType(System::String ^ className, bool ignoreCase);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types might be removed by trimming. If the type name is a string literal, consider using Type.GetType instead.")]
public virtual Type? GetType(string className, bool ignoreCase);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types might be removed")]
public virtual Type? GetType(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);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types might be removed by trimming. If the type name is a string literal, consider using Type.GetType instead.")>]
override this.GetType : string * bool -> Type
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types might be removed")>]
override this.GetType : string * bool -> Type
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

属性

例外

classNamenull

调用类初始值设定项并引发异常。

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

注解

注释

如果类型已转发到另一个程序集,此方法仍返回该类型。 有关类型转发的信息,请参阅 公共语言运行时中的类型转发

可以使用特定模块 Module.GetType检索类型。 对包含清单的模块进行调用 Module.GetType 不会搜索整个程序集。 若要从程序集中检索类型,无论它位于哪个模块中,都必须调用 Assembly.GetType

适用于

GetType(String, Boolean, Boolean)

Source:
Module.cs
Source:
Module.cs
Source:
Module.cs
Source:
Module.cs
Source:
Module.cs

返回指定的类型,指定是否对模块进行区分大小写的搜索,以及是否在找不到该类型时引发异常。

public:
 virtual Type ^ GetType(System::String ^ className, bool throwOnError, bool ignoreCase);
public virtual Type GetType(string className, bool throwOnError, bool ignoreCase);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types might be removed by trimming. If the type name is a string literal, consider using Type.GetType instead.")]
public virtual Type? GetType(string className, bool throwOnError, bool ignoreCase);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types might be removed")]
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.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types might be removed by trimming. If the type name is a string literal, consider using Type.GetType instead.")>]
override this.GetType : string * bool * bool -> Type
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types might be removed")>]
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 如果找不到类型,则引发异常; falsenull返回 。

ignoreCase
Boolean

true 对于不区分大小写的搜索;否则,为 false.

返回

如果 Type 在此模块中声明了类型,则表示指定类型的对象;否则为 null

属性

例外

classNamenull

调用类初始值设定项并引发异常。

className 是长度为零的字符串。

throwOnErrortrue,找不到类型。

className 需要找不到的依赖程序集。

className 需要找到但无法加载的依赖程序集。

-或-

当前程序集已加载到仅反射上下文中,并且 className 需要未预加载的依赖程序集。

className 需要依赖程序集,但文件不是有效的程序集。

-或-

className 需要为运行时版本编译的依赖程序集,该程序集比当前加载的版本晚。

示例

以下示例显示指定模块中类型的名称。 参数throwOnErrorignoreCase指定为 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 参数仅影响找不到类型时发生的情况。 它不会影响可能引发的任何其他异常。 具体而言,如果找到类型但无法加载,即使为 <a0/>,也可以引发

注释

如果类型已转发到另一个程序集,此方法仍返回该类型。 有关类型转发的信息,请参阅 公共语言运行时中的类型转发

可以使用特定模块 Module.GetType检索类型。 对包含清单的模块进行调用 Module.GetType 不会搜索整个程序集。 若要从程序集中检索类型,无论它位于哪个模块中,都必须调用 Assembly.GetType

适用于