Module.GetType 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回指定的类型。
重载
| 名称 | 说明 |
|---|---|
| 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。
- 属性
例外
className 是 null。
调用类初始值设定项并引发异常。
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。
- 属性
例外
className 是 null。
调用类初始值设定项并引发异常。
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。
- 属性
例外
className 是 null。
调用类初始值设定项并引发异常。
className 是长度为零的字符串。
throwOnError 是 true,找不到类型。
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 参数仅影响找不到类型时发生的情况。 它不会影响可能引发的任何其他异常。 具体而言,如果找到类型但无法加载,即使为 <
注释
如果类型已转发到另一个程序集,此方法仍返回该类型。 有关类型转发的信息,请参阅 公共语言运行时中的类型转发。
可以使用特定模块 Module.GetType检索类型。 对包含清单的模块进行调用 Module.GetType 不会搜索整个程序集。 若要从程序集中检索类型,无论它位于哪个模块中,都必须调用 Assembly.GetType。