写点什么

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

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

关注

评论

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

Go- 函数参数和返回值

HelloBug

函数 参数 返回值 Go 语言

以区块链为基础 通证经济是下一代互联网的数字经济

CECBC

牛逼Git,豆瓣评分高达9.3神著“Pro Git”电子版国内首次开源

Java~~~

Java git 架构 面试 架构师

ShardingSphere JDBC 分库分表 读写分离 数据加密

Java 源码 ShardingSphere

网络攻防学习笔记 Day114

穿过生命散发芬芳

网络安全 8月日更

Linux之export命令

入门小站

Linux

架构实战营 模块一作业

💤 ZZzz💤

架构实战营

最小二乘法,了解一下?

华为云开发者联盟

数据 数据处理 计算 最小二乘法 数学工具

懵逼!阿里一面就被虐了,幸获内推华为技术四面,成功拿到offer

编程susu

Java 编程 程序员 面试 计算机

在线JSON转PHP Array工具

入门小站

工具

面试重灾区:请说说mybatis的一级缓存和二级缓存

小鲍侃java

8月日更

带你梳理Jetty自定义ProxyServlet实现反向代理服务

华为云开发者联盟

容器 k8s jetty Servlet引擎 ProxyServlet

带头撸抽奖系统,DDD + RPC 开发分布式架构!

小傅哥

DDD 小傅哥 架构设计 springboot 抽奖系统

纯CSS实现beautiful按钮

执鸢者

CSS 大前端 按钮

教你一招疯狂拿Offer!用微服务设计一个超大型分布式电商平台

Java~~~

Java 架构 面试 Spring Cloud 架构师

Vue进阶(六十三):如何使浏览器打开时,默认的文档模式就是标准模式

No Silver Bullet

Vue 8月日更

手撸二叉树之二叉树的坡度

HelloWorld杰少

8月日更

百度地图开发-引入地图SDK并配置 02

Andy阿辉

android Android 小菜鸟 8月日更

iOS开发:Mac电脑Xcode里面添加导入真机调试包的步骤

三掌柜

8月日更 8月

使用mock.js给前端生成需要的数据

与风逐梦

大前端 后端 开发工具

从lowcode看下一代前端应用框架

百度Geek说

大前端 lowcode

脉脉转发3W次的字节内部首发“数据结构算法”手册!惨大厂被封杀

Java~~~

Java 架构 面试 算法 架构师

NodeJs深入浅出之旅:异步I/O (上)🐋

空城机

JavaScript 大前端 Node 8月日更

HVEC安装与卸载

林建

HVEC DISM++

架构实战营作业--模块一

冬瓜茶

PageHelper原理深度剖析(集成+源码)

阿Q说代码

ThreadLocal 分页 PageHelper 8月日更 mybatis的拦截器

架构师实战训练营|课后作业| 1

Frode

#架构实战营

CSS 数学函数之calc、clamp、min、max

devpoint

CSS css3 8月日更

聊聊 Linux 登陆提示信息 motd 文件

耳东@Erdong

Linux 8月日更 motd

智能运维系列直播间开讲啦,就在今天!

MySQL大版本间的区别

4ye

MySQL 后端 innodb 版本 8月日更

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