QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

Reflection API 因 Windows 商店应用作调整

  • 2012-09-13
  • 本文字数:819 字

    阅读完需:约 3 分钟

相对于完整的.NET 4.5 框架来说,用于Windows Store 应用的.NET API 子集则显得如此之小。 具体而言, Reflection.Emit 变得不可用,且 System.Type 类中的大多数成员也都被迁移到了 System.Reflection.TypeInfo 类中。

.NET 团队把 System.Type 分解成了两个类—— System.Reflection.TypeInfo 和一个简化的 System.Type ——主要意在将类型定义与类型引用分离。早在处理程序集时,就已采用了这种划分方法。 Brandon Bray 在《 Evolving the .NET Reflection API 》一文中解释到:

System.Reflection.Assembly 类代表的是程序集定义,而 System.Reflection.AssemblyName 类代表的是程序集引用。前者提供了丰富的功能集合,而后者只是数据,它可以帮助你得到想要的定义。这正是我们想为 System.Type 采用的模型。

Type 仅提供了对某一类型的引用,并未加载类型本身的所有元数据。所有丰富的信息都在 TypeInfo 中——对于给定的 Type,你可以通过该类型的 TypeInfo 来访问它的元数据。这种方式的优点是,访问 Type 对象的时候并不需要加载必要的程序集——仅当访问 TypeInfo 类的时候才需要。这意味着,是否需要加载程序集可以由开发者根据需要来控制。

为了保持更好的工作集和响应能力,Reflection API 也开始用 IEnumerable 类型来替代常见的数组类型的返回值。

兼容性:新的 Reflection API 中的这种改变并非破坏性的——Windows Store 中的应用必须使用新模型,而对于以.NET 4.5 框架为目标的代码而言,早期的.NET 4.0 模型和新模型皆可使用。为了实现这一点,.NET 框架使用的类型层次结构稍微有点不同。假如你想在.NET 4.5 和 Windows Store 应用之间复用代码的话,微软建议你将其包装为一个可移植的类库

查看英文原文 Reflection API Changes For Windows Store Apps


感谢贾国清对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2012-09-13 21:281130
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 139.3 次阅读, 收获喜欢 35 次。

关注

评论

发布
暂无评论
发现更多内容

技术写作与内容研究:主题得分、关键词搜索量、社区和论坛策略

小万哥

程序人生 后端开发 技术写作 关键词搜索 社区和论坛

【终极教程】Cocos2dx服务端重构(优化cocos2dx服务端)

Eclipse、IntelliJ IDEA、PyCharm三种IDE的区别

小魏写代码

测试开发 | 深度学习的引擎:神经网络结构探析

测吧(北京)科技有限公司

测试

测试开发 | 卷积神经网络(CNN):图像识别的骨干

测吧(北京)科技有限公司

测试

Socket.D 基于消息的响应式应用层网络协议

不在线第一只蜗牛

网络协议 应用层 网络通讯

五种简单保护网站安全的方法看这里!

行云管家

网络安全 网站 数据安全 网站安全

网站遇到DDOS攻击该怎么解决?

德迅云安全杨德俊

安全 DDoS 网站优化 #web

条件编译 | AI工程化部署

AIWeker

c AI AI工程化部署

深度学习:人工智能的前沿探索

测吧(北京)科技有限公司

测试

【第七在线】可持续时尚与商品计划:减少库存浪费的方法

第七在线

Tiktok怎样多开不封号?海外云手机就能解决!

Ogcloud

跨境电商 TikTok

记三次升级 TiDB 集群到 v6.1.5 遇到的案例分析过程&升级收益

TiDB 社区干货传送门

版本升级 管理与运维 6.x 实践

TiDB v7.5.0 vs Oceanbase v4.2.1.1 : online ddl 吐血验证测试

TiDB 社区干货传送门

数字化时代:普通人的应对策略与准备

AI 计算机 数字化时代 自媒体 人工智能「

测试开发 | 循环神经网络(RNN):时序数据的魔法笔

测吧(北京)科技有限公司

测试

危机来临,防御性编程能否帮助程序员抵御裁员风暴?

飞算JavaAI开发助手

【资源汇总】TiDB-TiCDC 源码解读系列最全资源!!!

TiDB 社区干货传送门

TiDB在银行业核心系统POC测试应用压测参考手册

TiDB 社区干货传送门

性能调优 性能测评 数据库架构设计 应用适配 OLTP 场景实践

macos冒险游戏推荐:索尼克梦之队Sonic Dream Team激活最新

胖墩儿不胖y

好玩的游戏推荐 Mac游戏分享

以裸眼3D为例,未来户外数字媒体如何演变?

Dylan

技术 媒体 数字 3D 设备

测试开发 | 长短时记忆网络(LSTM):时序信息的记忆大师

测吧(北京)科技有限公司

测试

全面解读《State of PostgreSQL 2023》报告

酷克数据HashData

年终收官!华为云开发者日·2023年度创享峰会成功举办

华为云开发者联盟

人工智能 软件开发 华为云 华为云开发者联盟 华为云CodeArts

Reflection API因Windows商店应用作调整_.NET_Roopesh Shenoy_InfoQ精选文章