Agregar referencia de servicio en un proyecto de subconjuntos portátiles
Los programadores de ensamblados de .NET pueden usar proyectos de subconjuntos portátiles para mantener un único árbol de origen y un único sistema de compilación mientras que se mantiene la compatibilidad con varias implementaciones de .NET (escritorio, Silverlight, Windows Phone y Xbox). En los proyectos de subconjuntos portátiles, solo se hace referencia a las bibliotecas que constituyen ensamblados de .NET que pueden usarse en cualquier otra implementación de .NET.
Detalles de Agregar referencia de servicio
Al agregar una referencia de servicio a un proyecto de subconjunto portátil se aplican las restricciones siguientes:
Para XmlSerializer, solo se permiten codificaciones literales. Las codificaciones SOAP generan un error durante la importación.
Para los servicios que usan escenarios DataContractSerializer, se proporciona un suplente de contrato de datos para asegurarse de que los tipos reutilizados proceden únicamente del subconjunto portátil.
Se omiten los extremos que confían en enlaces no admitidos en las bibliotecas portátiles (todos los enlaces excepto BasicHttpBinding, WSHttpBinding sin flujo de transacción, sesiones confiables o codificación de MTOM y enlaces personalizados equivalentes).
Los encabezados de mensaje se eliminan de todas las descripciones de mensaje en todas las operaciones antes de la importación.
Los atributos no portátiles DesignerCategoryAttribute, SerializableAttribute y TransactionFlowAttribute se quitan del código de proxy de cliente generado.
Las propiedades no portátiles ProtectionLevel, SessionMode, IsInitiating e IsTerminating se quitan de ServiceContractAttribute, OperationContractAttribute y FaultContractAttribute.
Todas las operaciones de servicio se generan como operaciones asincrónicas en el proxy de cliente.
Se quitan los constructores de cliente generados que usan tipos no portátiles.
Se expone una instancia de CookieContainer en el cliente generado.
Se inserta un comentario en la parte superior del archivo que identifica el ensamblado y la versión del generador de código:
// This code was auto-generated by Microsoft.VisualStudio.Portable.AddServiceReference, version 1.0.0.0
La interfaz ISerializable no se admite.
Los enlaces Net.Tcp y PollingDuplex no se admiten
DataContractSerializer se usará siempre para los errores.
IsWrapped no se admite en proyectos de subconjuntos portátiles.