写点什么

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:28995
用户头像
臧秀涛 略懂技术的运营同学。

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

关注

评论

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

产品经理中必会SQL技能,相关内容研发可不予支持

韩超

MySQL sql 产品经理

Scrum精髓 - Scrum的核心到底是什么

Bob Jiang

Scrum 敏捷 Scrum精髓 敏捷精髓

高仿瑞幸小程序 04 小程序的全局数据

曾伟@喵先森

小程序 微信小程序 大前端

如何快速对应用系统做一个360度画像诊断?

姜戈

Java 运维 多线程 网络 内存

真实 Java 笔试题

旭霁

面试

程序员的晚餐 | 5月9日 炖蹄髈

清远

程序员

拜托,别再问我Zookeeper如何实现分布式锁了!

不才陈某

zookeeper 分布式 后端 分布式锁

向上管理第一项:路径P背后的目标B

kimmking

管理

游戏夜读 | 联网才能玩的单机

game1night

理解雾计算(Fog Computing)与边缘计算(Edge Computing)

老任物联网杂谈

雾计算 Fog Computing 边缘计算 Edge Computing

关于职能型团队管理一些总结

黄大路

项目管理 管理

使用人工智能技术改进面试机器人

陆道峰

人工智能 学习 聊天机器人

Java 环境配置与编辑器使用

旭霁

Java IDEA

Elasticsearch原理讲透了!

Geek_0o5u34

lucene elasticsearch 倒排索引 分布式搜索引擎 数据的分片和备份

来了来了,2020 首场 Meetup ,可!

Apache Flink

大数据 flink 流计算 实时计算

Java并发编程--ReentrantLock

Java收录阁

并发编程

腊鸡与猴儿

黄大路

人生 小说

ROS与OpenAI结合使用教程(概览)

辣么大

DevOps怎样影响开发运维人员

脚动两轮男之漂流小王子

DevOps

关于查尔斯-斯特里克兰

黄大路

提升认知 小说 个人提升 认识自己

数据库连接池的大小

Java收录阁

数据库

一个 UED 团队的自我修养

oldj

团队管理 UED

做程序员有未来吗

山楂大卷

程序员 个人成长 职业规划 技术人

数据挖掘|cross_val_score交叉验证使用

黄大路

Python 数据挖掘 学习 数据分析

Redis 命令执行过程(上)

程序员历小冰

redis 源码分析

面试官浅析程序员面试过程中的二三事

joe

互联网 个人成长 方法 职场 文化

回"疫"录(11):别让善良寒了心

小天同学

疫情 回忆录 现实纪录 纪实

读 Go Scheduler 有感:给产品经理的建议

Ya

程序员 产品经理 操作系统 OS Scheduler

直播电商行业一些看法

黄大路

互联网 商业 商业模式 商业价值 行业资讯

以不变应万变——复杂系统回归测试新思路

刘华Kenneth

DevOps 敏捷 测试 单体系统 复杂

如何打造个人品牌?

石云升

个人 品牌

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