c# - 即使在对象浏览器中可见,也无法访问可移植类库中的 "System.Servicemodel.Web"

标签 c# portability portable-class-library

我迄今为止阅读的所有文档都建议您可以从可移植类库中创建 Web 服务库,它们都指出:

  • 系统服务模型&
  • System.ServiceModel.Web

可用于诸如“WebGet”属性和其他 WCF Rest 功能之类的东西。

但是,当我尝试引用命名空间时,它说它不可用并且在代码中浏览不显示命名空间。

我通常认为这意味着它在可移植类库中不可用,但命名空间在对象浏览器中可见。

我什至尝试将我的目标框架限制为:

  • .NET 4.03 及以上
  • Silverlight 4 及更高版本

但没有喜悦。即使只使用 SL5 和 .NET 4.5 仍然不会公开命名空间

有什么想法吗?

最佳答案

答案很简单,是否定的

您可以在 PCL 项目中使用所有基本的 [DataContract]/[ServiceOperation]/[DataMember] 属性,但不能将 Rest Implementation 属性放在任何东西上。

在 PCL 中尽可能多地提供属性,然后在具体实现中应用 Rest 属性的简单答案(确实需要存在于 PCL 中)

另请注意,当您使用 PCL 时,许多可序列化标签会丢失,因此请使用将 [DataContract] [DataMember] 属性添加到您的所有模型和属性,否则您将遇到我发现的问题。

关于c# - 即使在对象浏览器中可见,也无法访问可移植类库中的 "System.Servicemodel.Web",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13722012/

相关文章:

c# - 使用 F# FAKE 测试 PCL

c# - 下拉 future 10 年

javascript - 允许 ASP.NET Framework 上的特定按钮上的 Javascript Onbeforeunload 函数

c# - 在 c# 控制台项目中使用 OneDrive SDK 进行身份验证

c++ - 如何检查(在 C/C++ 代码中)我的计算机上是否安装了 Openssl?

asp.net-web-api - 从 ASP.NET 5 Web API 引用可移植类库 (PCL)

c# - C# 中需要可选的 VB 参数

SQL 可移植性陷阱

linux - 创建可移植和静态的 fortran linux 二进制文件?

c# - PCL - 对于某些目标,无法从 Func<IThing<T>> 转换为 Func<Object>