Добавление ссылки на службу в проект переносного вложенного набора

Переносимые проекты подмножества позволяют программистам сборки .NET поддерживать одно исходное дерево и систему сборки, поддерживая несколько реализаций .NET (классические, Silverlight, Windows Телефон и Xbox). Переносимые проекты подмножества ссылаются только на переносимые библиотеки, которые являются сборками .NET, которые можно использовать в любой реализации .NET.

Диалоговое окно «Добавление ссылки на службу»

При добавлении ссылки на службу в переносимом проекте подмножества применяются следующие ограничения:

  • Для XmlSerializer разрешены только символьные кодирования. Кодировки SOAP приводят к ошибке во время импорта.

  • Для служб, использующих сценарии DataContractSerializer, предоставляется суррогат контракта данных, гарантирующий что повторно используемые типы находятся в переносимом подмножестве.

  • Конечные точки, которые зависят от привязок, неподдерживаемых в переносимых библиотеках (все привязки, кроме BasicHttpBinding, WSHttpBinding, за исключением привязок потока транзакций, надежных сеансов или кодирования MTOM и соответствующих пользовательских привязок), не учитываются.

  • Перед импортом во всех операциях заголовки сообщений удаляются из всех описаний сообщений.

  • Непереносимые атрибуты DesignerCategoryAttribute, SerializableAttributeи TransactionFlowAttribute удаляются из созданного прокси-кода клиентов.

  • Непереносимые свойства ProtectionLevel, SessionMode, IsInitiating, IsTerminating удаляются из ServiceContractAttribute, OperationContractAttribute и FaultContractAttribute.

  • Все операции службы создаются в виде асинхронных операций в прокси клиента.

  • Удаляются конструкторы клиента, которые используют непереносимые типы.

  • Экземпляр CookieContainer предоставляется в созданном клиенте.

  • В начало файла вставляется комментарий, идентифицирующий сборку и версию генератора кода: // This code was auto-generated by Microsoft.VisualStudio.Portable.AddServiceReference, version 1.0.0.0

  • Интерфейс ISerializable не поддерживается.

  • Привязки PollingDuplex и Net.Tcp не поддерживаются.

  • Класс DataContractSerializer всегда будет использоваться для отработки ошибок.

  • Свойство IsWrapped не поддерживается в проектах переносимого подмножества.

См. также