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