问题标签 [portable-class-library]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
4349 浏览

windows-8 - 选择 Windows 运行时组件与可移植代码库

在 Windows Phone 8 和 Windows 8 之间共享代码时,开发人员的两个核心选项是 1) Windows 运行时组件和 2) 门户类库。

Windows 运行时组件使用 WinRT,并且可以投影到所有受支持的语言中。在不同平台上使用时,它们需要单独项目(二进制文件)中的链接文件。但是,它们共享 90% 的可用 WinRT API。

可移植类库是 BCL 的一个子集(有时是重要子集),具有跨平台的二进制兼容性。它们可用于 WinRT 应用程序,也可用于 Silverlight、Xbox 等其他项目类型。

当开发人员选择“共享策略”时,哪种项目类型是在 Windows Phone 8 和 Windows 8 之间共享代码的最佳技术?谢谢。

0 投票
1 回答
625 浏览

windows-phone-8 - 如何向面向 Windows Phone 8 的可移植类库项目添加服务引用?

我看到一种奇怪的行为,想知道我是不是做错了什么,或者就是这样。使用 PCL 时,我的目标是 Windows Phone 7。此时,我可以添加服务引用。将目标更改为 Windows Phone 8。此时,我无法再添加服务引用。

有没有办法将服务引用添加到针对 WP8 的 PCL 项目?

提前致谢。

0 投票
0 回答
222 浏览

.net - Microsoft 便携式客户端库 - MessageContractAttribute isWrapped 未定义

我正在尝试使用 Microsoft 的便携式库工具来创建一个可供 Silverlight 和 WPF 应用程序使用的通用“便携式”项目。

我在将第 3 方 WebService 的服务引用添加到可移植项目时遇到了麻烦。似乎可移植类库不支持 MessageContractAttribute 类的isWrapped属性,例如,如果我直接在 Silverlight 应用程序中创建客户端存根,存根看起来像这样:

但在我的便携式项目中,它看起来像这样,缺少IsWrapped属性设置:

似乎也不能手动设置,只是不可用/未定义。结果是,我的 Web 服务 SOAP 请求周围有一个不需要的包装器标记,导致服务器响应格式错误的请求错误消息。

我想知道是否有任何已知的解决方法?有没有其他方法可以关闭包装器,或者有谁知道为什么 IsWrapped 属性不可用?

如果我能让它工作,那就太好了,因此我的 WPF 和 Silverlight 解决方案可以共享它。

0 投票
1 回答
306 浏览

c# - 如何使用便携式库从 html 元素中获取内容?

我想从中“下载” HTMLhttp://www.google.com/search?q=stack+overflow并获取前 5 个结果的titleurl

在便携式图书馆中,我相信我无法访问HtmlDocument并且HtmlAgilityPack无法工作,还是我错了?

我怎样才能完成这项任务,让 lib 至少能够在 Windows Store Apps 和 Windows Phone 上执行?

0 投票
1 回答
1931 浏览

c# - 在可移植类库中实现自定义异常

在为 .NET 设计自定义异常时,MSDN 提供了这些指南。特别是,指南规定了一个自定义例外:

  • 应该是可序列化的,即用属性实现ISerializable和装饰,并且[Serializable]
  • 应该实现(反)序列化构造函数,即protected CustomException(SerializationInfo info, StreamingContext context).

但是,在可移植类库SerializableAttributeISerializableSerializationInfo都不支持。

我应该如何在同时针对 .NET Framework 和一个或多个平台的可移植类库中充分设计自定义异常?

0 投票
2 回答
855 浏览

c# - System.Tuple 在可移植类库中的位置在哪里?

我不知道我是否安装了不正确的东西,但是在制作了 C# Portable Class Library 目标.NET for Windows Store apps, .NET Framework 4.5, Silverlight 4 and higher, Windows Phone 7 and higher之后,我得到了System.Tuple丢失的错误。

这怎么可能?

0 投票
2 回答
1282 浏览

javascript - 从 Windows 运行时组件调用可移植代码库中的异步方法

背景

我正在构建一个可在 Windows 8(作为商店应用程序)和 Windows 7(作为 WPF 桌面应用程序)上使用的应用程序。这些应用程序将允许浏览一堆(大约 500 多个应用程序“页面”)的内容。

虽然我不能在他们之间共享很多代码,但我确实希望尽可能多地共享。因此,我创建了一个针对 .NET 4.5、Silverlight 4+ 和 Windows 8 的便携式代码库 (PCL)。由于 Win 8 应用程序是用 JavaScript 编写的(出于各种原因,不是这个问题的一部分),我也有一个 Windows运行时组件,充当 JavaScript 和 PCL 之间的代理。换句话说,来自 JavaScript 的异步调用首先调用 WinRT 组件上的方法,然后调用 PCL 中的相应方法。

问题

为了支持 PCL 中的异步操作,我通过 NuGet 安装了 Microsoft.Bcl 和 Microsoft.Bcl.Async 包。这些,除其他外,定义了异步方法所需的 Task 和 Task<> 类,但它们在自己的程序集中这样做。WinRT 组件不需要这些库,因为已经为它定义了 Task 和 Task<>。问题是当我在 WinRT 组件中添加代码以调用返回 Task<> 对象的 PCL 中的 Async 方法时,我收到以下构建错误:

WINMDEXP:错误 WME1007:无法解析引用“程序集(名称=System.Threading.Tasks,版本=1.5.11.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a)”。

我试过的

我已经尝试了很多东西,但可能出现的主要两个是:

  1. 修改 WinRT 组件的 app.Config 以为程序集添加 bindingRedirect。
  2. 通过从内部执行的异步调用中取回 Task 对象并在其上调用 Wait(),使 PCL 调用在外部非异步。等待永远不会返回抛出一个神秘的异常。

那么,关于如何实现这一点的任何想法?

谢谢,
戴夫帕克

0 投票
2 回答
1062 浏览

c# - 如何在可移植库中反序列化 JSON

你知道任何适用于可移植类库(Win RT、WP8、Silverlight 5)的 JSON 框架吗?

0 投票
1 回答
1814 浏览

c# - 可移植类库和 WebRequest.ContentLength

我有一个针对“.NET for Windows Store apps”和“Windows Phone 7.5 或更高版本”的便携式类库。我发出 HTTP POST 请求,截至上周,负责后端的管理员决定我需要发送 0 的 ContentLength,而不是 .NET 默认的 -1。我使用 WebRequest 类,但我足够灵活,可以在需要时使用 HttpWebRequest。

通常我只会使用 WebRequest.Create 并设置 ContentLength 属性。在 PCL 库中,ContentLength 属性不可用。如果我尝试使用“Content-Length”键添加标题,框架会抱怨我应该只使用 ContentLength 属性。

关于如何在 PCL 中设置 ContentLength 的任何想法?

0 投票
1 回答
810 浏览

.net - 在可移植程序集中获取当前方法的 MethodInfo

我想在具有 Windows Phone 和 Windows Store 应用程序支持的便携式程序集中获取当前执行方法信息。但是,在这样的便携式组件MethodInfo.GetCurrentMethod()MethodBase.GetCurrentMethod()是不可用的。如何获取当前方法的 MethodInfo?