当您想知道包含类型的程序集的详细信息时,您曾在编程世界中感到好奇。
让我们考虑一个例子。
考虑一个定义在某个程序集X中的Employee类型,Employee实例被用于一个程序集Y中。作为一个开发者,你的任务是加载程序集并获得关于成员、属性、方法等的额外信息。你还想在Type employee的实例上调用一些方法。为了实现所需的行为,,typeof和GetType()方法可以帮助你实现你的预期功能。
typeof关键字将Type本身作为一个参数,并返回参数的下划线Type,而GetType()只能在Type的实例上调用。
typeof
System.Type t1= typeof(Employee); // Employee is a Type
GetType()
Employee employee= new Employee();
System.Type t2= employee.GetType(); // employee is an instance of the type Employee.
这两个例子都为Employee类型创建了一个Type类的实例。在你有了对该类型的引用后,你可以从它们中提取额外的信息,如下所示。
Console.WriteLine("AssmeblyQualifiedName: {0}", t1.AssemblyQualifiedName);
Console.WriteLine("FullName: {0}", t1.FullName);
Console.WriteLine("IsValueType: {0}", t1.IsValueType);
Console.WriteLine("Name: {0}", t1.Name);
Console.WriteLine("Namespace: {0}", t1.Namespace);
输出:
![drawing](https://img-blog.csdnimg.cn/d0afd67c0ffb4a0b821fa023f5cfbfc2.png)
如果要对实例执行方法调用,请先使用反射加载程序集并检索方法信息并执行方法调用。