反射基础知识
问题描述:
我是新来的反射和打砖墙试图了解类型。反射基础知识
Assembly是什么意思?Assembly.GetTypes()
返回什么?另外,如果您从GetTypes()
命令中获得的“类型”上调用类似GetGenericArguments()
的东西,那么该做什么?
谢谢
答
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) ]
答
大会是在这种情况下的dll或exe文件。
Assembly.GetTypes()返回该程序集中的所有类型。
如果你有一个泛型类型
public class MyType<T, V>
{
}
Type.GetGenericArguments返回T
和V
。
答
程序集包含运行的代码,或存储有关对象的信息,即具有方法/属性/事件的类/结构。
类型是描述其他类的类。
http://msdn.microsoft.com/en-us/library/system.type%28v=vs.71%29.aspx
答
在.NET的组件是由编译类库(和其他)项目类型
Assembly.GetTypes()
返回该组件的所有类型的阵列产生的* .dll文件,也就是说所有的类&构件内的结构。
进一步阅读
你应该开始阅读有关'reflection' http://www.codeguru.com/csharp/csharp/cs_misc/reflection/article一些文档。 PHP/c4257 – 2012-02-17 16:03:43