IOS上的反射是部分支持,支持使用反射读取源代码,但不支持使用反射动态生成可执行代码,
下面是限制反射的命名空间:
Profiler
Reflection.Emit
Reflection.Emit.Save functionality
COM bindings
The JIT engine
Metadata verifier (since there is no JIT)html
实施序列化和反序列化只是使用了反射机制去动态建立已经在编译时刻通知的类型,但不支持动态类型的建立,因此JSON的序列化和反序列化能够在IOS上执行。ios
换句话说IOS支持的是Reflection的命名空间的部分方法,但不表明支持Emit下的命名空间的方法,总而言之,IOS不支持以动态方式建立新的方法和类型。ide
关于Reflection.Emit的详细说明ui
http://www.cnblogs.com/cuihongyu3503319/archive/2009/12/01/1614298.htmlhtm
http://docs.xamarin.com/guides/ios/advanced_topics/limitations/blog