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

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

添加服务参考详细信息

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

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

  • 对于使用 DataContractSerializer 场景的服务,提供了数据合同代理,以确保复用的类型仅来自可移植子集。

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

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

  • 不可移植的属性 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 在可移植子集项目中不受支持。

另请参阅