在可移植子集项目中添加服务引用
通过可移植子集项目,.NET 程序集程序员可维护单个源树并生成系统,同时仍支持多个 .NET 实现(桌面、Silverlight、Windows Phone 和 Xbox)。 可移植子集项目仅引用可在任何 .NET 实现上使用的 .NET 程序集的可移植库。
添加服务引用详细信息
在可移植子集项目中添加服务引用时,将强制执行以下限制:
对于 XmlSerializer,仅允许文本编码。 SOAP 编码在导入过程中生成错误。
针对使用 DataContractSerializer 方案的服务,提供了数据协定代理项以确保重用的类型仅来自可移植子集。
将忽略依赖可移植库中不支持的绑定的终结点(除没有事务流、可靠会话或 MTOM 编码的 BasicHttpBinding、WSHttpBinding 的绑定以及等效的自定义绑定之外的所有绑定)。
在导入之前的所有操作中,将从所有消息描述删除消息标头。
将从生成的客户端代理代码删除不可移植的特性 DesignerCategoryAttribute、SerializableAttribute 和 TransactionFlowAttribute。
将从 ServiceContractAttribute、OperationContractAttribute 和 FaultContractAttribute 删除不可移植的属性 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。