Adicionar referência de serviço em um projeto de subconjunto portátil
Os projetos de subconjuntos portáteis permitem que os programadores de montagem .NET mantenham uma única árvore de código-fonte e construam o sistema enquanto ainda suportam várias implementações .NET (desktop, Silverlight, Windows Phone e Xbox). Os projetos de subconjunto portátil fazem referência apenas a bibliotecas portáteis que são assemblies .NET que podem ser usados em qualquer implementação do .NET.
Adicionar detalhes de referência de serviço
Ao adicionar uma referência de serviço em um projeto de subconjunto portátil, as seguintes restrições são impostas:
Para XmlSerializer, apenas codificações literais são permitidas. As codificações SOAP geram um erro durante a importação.
Para serviços que usam DataContractSerializer cenários, um substituto de contrato de dados é fornecido para garantir que os tipos reutilizados venham apenas do subconjunto portátil.
Os pontos de extremidade que dependem de associações não suportadas em bibliotecas portáteis (todas as associações, exceto BasicHttpBinding, WSHttpBinding sem fluxo de transação, sessões confiáveis ou codificação MTOM e associações personalizadas equivalentes) são ignorados.
Os cabeçalhos das mensagens são excluídos de todas as descrições de mensagens em todas as operações antes da importação.
Atributos DesignerCategoryAttributenão portáteis , SerializableAttributee TransactionFlowAttribute são removidos do código proxy do cliente gerado.
As propriedades não portáteis ProtectionLevel, SessionMode, IsInitiating, IsTerminating são removidas de ServiceContractAttribute, OperationContractAttributee FaultContractAttribute.
Todas as operações de serviço são geradas como operações assíncronas no proxy do cliente.
Os construtores de cliente gerados que usam tipos não portáteis são removidos.
Uma CookieContainer instância é exposta no cliente gerado.
Um comentário é inserido na parte superior do arquivo identificando o assembly e a versão do gerador de código:
// This code was auto-generated by Microsoft.VisualStudio.Portable.AddServiceReference, version 1.0.0.0
A ISerializable interface não é suportada.
Não há suporte para ligações Net.Tcp e PollingDuplex
O DataContractSerializer será sempre usado para falhas.
IsWrapped não é suportado em projetos de subconjuntos portáteis.