【发布时间】:2013-02-03 17:11:45
【问题描述】:
我有一个针对 WSA、NET45 和 WP8 的可移植类库,我也想针对 SL5。愚蠢的是 99% 的库代码都符合 SL 标准,但有几个地方我调用反射 API 来检索类型属性或字段:
var fields = myType.GetTypeInfo().DeclaredFields;
很遗憾,GetTypeInfo 在 SL5 中不可用,因此上述代码无法编译。所以我基本上有选择:
- 不要从 PCL 定位 SL5,因此我需要为 Silverlight 保留一个单独的库。
- 从使用反射的 PCL 代码中提取,因此 PCL 需要解决这种对启动的依赖性。
- 在运行时做一些智能的事情,这样 PCL 可以检测哪些方法可用并调用适当的方法。
选项 1 没问题,但我宁愿找到维护重复库的替代方法。 如果我必须提取大量功能,那么选项 2 就可以了,因此值得引入一个引导程序。当几行无法编译时,拖动 DI/IoC 是愚蠢的。
所以我正在考虑选项 3,但没有清楚地了解它是否可能。反射是我的朋友,但这是我正在努力克服的反射 API 不匹配问题。
建议/经验分享表示赞赏。
【问题讨论】:
标签: reflection silverlight-5.0 portable-class-library