Unity5.x在WP8.1中无法使用Reflection API的解决方法
下班前随便写点,虽然花了不少时间但是最终得到的解决方法还是比较简单的。
第一种方法:使用WinRTLegacy.dll中的类。这个dll在生成的WP project中是自带的无需在unity工程中添加,但是这个带来的问题就是调试代码的时候不方便,因为你不放到项目中在VS的工程中就没有这个dll,对于调试代码和VS的自动补全功能影响很大。
废话不多说,用几个例子来说明用法:
#if NETFX_CORE
foreach (PropertyInfo p_info in TypeExtensions.GetPublicInstanceProperties(type))
#else
foreach (PropertyInfo p_info in type.GetProperties())
#endif #if NETFX_CORE
PropertyInfo[] proinfos = Unity.Partial.System.Type.GetProperties(srcObj.GetType(), m_bindingAttr);
#else
PropertyInfo[] proinfos = srcObj.GetType().GetProperties(m_bindingAttr);
#endif
TypeExtensions算是Unity对WP8.1的.NET Core中移除Reflection API的补充,方法算是比较全但是和原有的Type类中的方法比仍旧有很多不足,好在还有另一个类Unity.Partial.System.Type来补充。
#if NETFX_CORE
foreach (FieldInfo f_info in Unity.Partial.System.Type.GetFields(type))
#else
foreach (FieldInfo f_info in type.GetFields())
#endif
这两个类都是在同一个dll中的,用object Browser来看这个dll真心有点乱。用这两个类协作就可以解决大多数的Reflection API的问题。
第二种方法:使用类似GetRuntimeMethods这样的runtime方法
IEnumerable<MethodInfo> methods = type.GetRuntimeMethods();
同样在object Browser中可以发现有大量的方法名中带Runtime的方法,这些方法在WP8.1下有效。
PS: 宏NETFX_CORE无需在unity工程中定义,在生成的WP project中自带。
Unity5.x在WP8.1中无法使用Reflection API的解决方法的更多相关文章
- Sublime Text 无法使用Package Control的解决方法 以及 常用的插件安装过程
大概一个月之前给 Macbook air 装 Sublime Text 3 的时候,遇到过这个问题,当时解决了,现在回想,感觉忘的七七八八了,赶紧趁着还没有全忘光的时候记下来,当时的过程记得不一定准确 ...
- VS2012中丢失ArcGIS模板的解决方法
VS2012中丢失ArcGIS模板的解决方法 由于ArcGIS10.0(for .NET)默认是用VS2010作为开发工具的,所以在先安装VS2012后装ArcGIS10.0 桌面版及ArcObjec ...
- js中style.display=""无效的解决方法
本文实例讲述了js中style.display=""无效的解决方法.分享给大家供大家参考.具体解决方法如下: 一.问题描述: 在js中我们有时想动态的控制一个div显示或隐藏或更多 ...
- java开发中遇到的问题及解决方法(持续更新)
摘自 http://blog.csdn.net/pony12/article/details/38456261 java开发中遇到的问题及解决方法(持续更新) 工作中,以C/C++开发为主,难免与其他 ...
- SpringBoot拦截器中无法注入bean的解决方法
SpringBoot拦截器中无法注入bean的解决方法 在使用springboot的拦截器时,有时候希望在拦截器中注入bean方便使用 但是如果直接注入会发现无法注入而报空指针异常 解决方法: 在注册 ...
- asp.net url址址中中文汉字参数传递乱码解决方法
中文乱码是网站开发中会常碰到的问题,今天我们来讲一下关于url址址中中文汉字参数传递乱码解决方法,有需要的朋友可以参考下.在cs文件里传参的时候用UrlEncode: Response.Redirec ...
- @NamedEntityGraphs --JPA按实体类对象参数中的字段排序问题得解决方法
JPA按实体类对象参数中的字段排序问题得解决方法@Entity @Table(name="complaints") @NamedEntityGraphs({ @NamedEntit ...
- 关于验证码在IE中不刷新的快速解决方法
今天在做验证码的时候发现在IE中,验证码不会刷新,而谷歌等其他浏览器没有问题,所以我想到应该是缓存问题,因为IE默认的设置是如果访问地址没变化就不会去获取而是加载缓存中的内容 所以解决方案就是在验证码 ...
- 在启动php时,无法启动此程序,由于计算机中丢失MSVCR110.dll的解决方法
在启动php时,运行RunHiddenconsole.exe php-cgi.exe -b 127.0.0.1:9000 -c时,出现错误:无法启动此程序,由于计算机中丢失MSVCR110.dll 方 ...
随机推荐
- !important
当你需要确保某元素具有指定的 CSS 时,你可以使用!important. 举例如下: color: pink !important;
- 黑马程序员-NSDictionary和NSMutableDictionary
NSDictionary和NSMutableDictionary:通过key和value进行对应,进行存储元素,能够方便提取所需的元素.key是不能够重复出现,但是value能够重复出现.NSDict ...
- Sql Servicer 复习笔记(1) 存储过程分布
第一步:创建表 declare @countInt int declare @age int ) begin ),@countInt), @age,'中国北京') ; ; ) begin ; end ...
- 第58讲:Scala中Abstract Types实战详解
这一讲我们来学习下抽像类型.让我们看下代码 package scala.learnimport scala.io.BufferedSourceimport scala.io.Source trait ...
- php+Mysqli利用事务处理转账问题实例
本文实例讲述了php+Mysqli利用事务处理转账问题的方法.分享给大家供大家参考 <?php /**php+Mysqli利用事务处理转账问题实例 * author http://www.lai ...
- jsoup使用样式class抓取数据时空格的处理
最近在研究用android和jsoup抓取小说数据,jsoup的使用可以参照http://www.open-open.com/jsoup/;在抓纵横中文网永生这本书的目录内容时碰到了问题, 永生的书简 ...
- Scala.js v0.1 发布,在浏览器直接运行 Scala
今天我们发布了 Scala.js 的首个版本,这个项目是在今年六月份的时候宣布的. 第一个版本支持的特性: 支持所有 Scala 特性,包括宏,不过有一些 语义上的区别 可非常好的跟 JavaScri ...
- C# 调用restful服务开源库
.NET环境下我们想调用其它开放平台的服务接口,不需要自己去实现底层,开源的库用起来会很方便 hammock http://www.cnblogs.com/shanyou/archive/2012/0 ...
- PostgreSQL基础整理(一)
1. 创建数据库: 1)登录bin目录,createdb.exe -U postgres -e mydb; -U 表示本次操作的登录用户名,如果不写会取windows登录的账户,如Administra ...
- ECMAScript 6 简介
ECMAScript 6 是JavaScript的下一个标准,正处在快速开发之中,大部分已经完成了,预计将在2014年正式发布.Mozilla将在这个标准的基础上,推出JavaScript 2.0. ...