我迄今为止阅读的所有文档都建议您可以从可移植类库中创建 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/