写点什么

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

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

关注

评论

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

图的应用——关键路径

若尘

数据结构

见康乘拼团软件开发|见康乘拼团系统APP开发

测试开发之网络篇-常用命令

禅道项目管理

Linux 命令行

Redisson 分布式锁源码 07:公平锁释放

程序员小航

Java redis 源码 分布式锁 redisson

智汇华云|华云数据ArSDN:自主可控的SDN

华云数据

互斥锁Mutex:鸿蒙轻内核中处理临界资源独占的“法官”

华为云开发者联盟

鸿蒙 OpenHarmony 鸿蒙轻内核 互斥锁Mutex 临界资源

【LeetCode】主要元素Java题解

Albert

算法 LeetCode 7月日更

如何对开发团队的人员进行绩效管理?

万事ONES

研发效能 ONES 绩效管理

小白也能看懂的Java内存模型

程序猿阿星

JMM Java内存模型 原子性 有序性 可见性;

永续合约交易所搭建,合约平台开发

用中国话学this指向(旧知识新讲)

加百利

JavaScript 大前端 this 7月日更

2021 WAIC | EMQ 映云科技:面向云原生的云边协同物联网解决方案

EMQ映云科技

云原生 云端 端边云协同架构 边云协同

毕业季offer怎么拿?收下这份非典型求职面试指南

华为云开发者联盟

面试 职业规划 求职 毕业季 大学生

深入理解搜索引擎——初识query理解

药老算法

搜索引擎 中文分词 query理解 query纠错 query分析

与微软、IBM同台 斯图飞腾Stratifyd入选G2文本分析Grid报告

【Flutter 专题】92 图解 Dart 单线程实现异步处理之 Isolate (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 7月日更

WorkPlus房地产行业数字化解决方案—富力地产

BeeWorks

开源 远程办公 即时通讯 IM

WorkPlus高端制造行业数字化解决方案—华晨宝马

BeeWorks

开源 即时通讯 IM 案例分享 汽车

pha分币APP系统开发资料

面向编程式多云管理服务时代的华为云MCP多云跨云的容器治理与实践

华为云开发者联盟

容器 云原生 华为云 多云 跨云

pha挖矿/phala挖矿APP系统开发内容

一个完整的项目管理流程包括什么?

万事ONES

项目管理 ONES

WICC 2021召开在即 清华大学教授将分享AI+网络音视频服务研究

融云 RongCloud

CODING 带你看腾讯新闻 7 日 DevOps 实践

CODING DevOps

DevOps CODING 腾讯新闻

就在今天,浪潮云说第二期来啦

云计算

原来这就是Java IO啊····

华为云开发者联盟

Java 操作系统 进程 IO流 Java IO

多项目同时进行如何做好项目管理?

万事ONES

FIL矿机多少钱一台 ?FIL挖矿成本是多少?

手写链表之LinkedList源码分析

Ayue、

数据结构

如何利用云原生技术构建现代化应用

阿里巴巴中间件

云计算 阿里云 云原生 中间件

Fil和BTC有什么区别?Filecoin挖矿的行情如何?

IPFS BTC fil fil币

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