【问题标题】:Do Portable Class Libraries handle conditional statements / references?可移植类库是否处理条件语句/引用?
【发布时间】:2012-02-01 04:15:14
【问题描述】:

我有一个使用两个链接项目和链接文件技术在 .Net Framework 和 Silverlight 之间共享的类库。

我想将其转换为单个可移植类库,但我有一点代码在两者之间有所不同。我目前使用条件编译器语句来分离这个文件的实现。

#if SILVERLIGHT
...
#else
...
#endif

这会在 PCL 中得到尊重吗?

此外,不是 silverlight 的代码部分引用了第三方常规 .Net 类库。 PCL 仍可编译,但由于此引用,我无法在 Silverlight 中使用它。有什么方法可以告诉 PCL 仅将其包含在 .Net 使用中?

【问题讨论】:

    标签: c# .net silverlight portable-class-library


    【解决方案1】:

    该模式实现了编译时可移植性,而不是运行时可移植性。

    如果您有大量特定于 Silverlight 的代码,那么您实际上并没有可移植的库 - 您应该考虑将特定于 Silverlight 的代码分解到一个单独的程序集中,并让该专门的程序集依赖于您的 PCL .

    如果您的 Silverlight 特定代码很少,您可以考虑在运行时使用反射动态绑定到您的 Silverlight 依赖项。然后,您的 PCL 可以在任何情况下使用,但如果存在 Silverlight,则会“优雅地升级”到 Silverlight。

    【讨论】:

    • 谢谢。我没有考虑过反思。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-14
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多