在可移植子集项目中添加服务引用

通过可移植子集项目,.NET 程序集程序员可维护单个源树并生成系统,同时仍支持多个 .NET 实现(桌面、Silverlight、Windows Phone 和 Xbox)。 可移植子集项目仅引用可在任何 .NET 实现上使用的 .NET 程序集的可移植库。

添加服务引用详细信息

在可移植子集项目中添加服务引用时,将强制执行以下限制:

  • 对于 XmlSerializer,仅允许文本编码。 SOAP 编码在导入过程中生成错误。

  • 针对使用 DataContractSerializer 方案的服务,提供了数据协定代理项以确保重用的类型仅来自可移植子集。

  • 将忽略依赖可移植库中不支持的绑定的终结点(除没有事务流、可靠会话或 MTOM 编码的 BasicHttpBindingWSHttpBinding 的绑定以及等效的自定义绑定之外的所有绑定)。

  • 在导入之前的所有操作中,将从所有消息描述删除消息标头。

  • 将从生成的客户端代理代码删除不可移植的特性 DesignerCategoryAttributeSerializableAttributeTransactionFlowAttribute

  • 将从 ServiceContractAttributeOperationContractAttributeFaultContractAttribute 删除不可移植的属性 ProtectionLevel、SessionMode、IsInitiating、IsTerminating。

  • 所有服务操作都是作为客户端代理上的异步操作生成的。

  • 将删除所生成的使用不可移植类型的客户端构造函数。

  • 在生成的客户端上公开一个 CookieContainer 实例。

  • 在文件顶部插入注释以标识代码生成器的程序集和版本:// This code was auto-generated by Microsoft.VisualStudio.Portable.AddServiceReference, version 1.0.0.0

  • 不支持 ISerializable 接口。

  • 不支持 Net.Tcp 和 PollingDuplex 绑定

  • 始终将 DataContractSerializer 用于错误。

  • 可移植子集项目中不支持 IsWrapped

另请参阅