反射基础
本文关键字:反射 | 更新日期: 2023-09-27 18:25:10
我刚开始反思,在试图理解类型时遇到了困难。
Assembly到底是什么意思?Assembly.GetTypes()
返回了什么?此外,如果您在从GetTypes()
命令中获得的"类型"上调用类似GetGenericArguments()
的东西,那么它到底能做什么?
感谢
在这种情况下,程序集是dll或exe文件
Assembly.GetTypes()返回该程序集中的所有类型。
如果你有一个通用类型
public class MyType<T, V>
{
}
Type.GetGenericArguments返回T
和V
。
调用Assembly.GetTypes()
返回程序集中定义的所有类型和接口。
调用Type.GetGenericArguments()
返回为泛型类型指定的所有泛型参数。这可能不是最清楚的解释,一个例子会有所帮助:
var type1 = typeof(Func<>);
type1.GetGenericArguments(); // [ typeof(TResult) ]
var type2 = typeof(Func<string>);
type2.GetGenericArguments(); // [ typeof(String) ]
var type3 = typeof(Tuple<string, int, bool>);
type3.GetGenericArguments(); // [ typeof(String), typeof(Int32), typeof(Boolean) ]
程序集包含运行或存储对象信息的代码,即具有方法/属性/事件的类/结构。
类型是一个描述其他类的类。
http://msdn.microsoft.com/en-us/library/system.type%28v=vs.71%29.aspx
.NET中的程序集是通过编译类库(和其他)项目类型生成的*.dll文件
Assembly.GetTypes()
返回该程序集中所有类型的数组,也就是说;部件内部的结构。
进一步读取
Assembly.GetTypes
System.Type