Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Пример UseAndStyle демонстрирует, как использовать свойства Use и Style для XmlSerializerFormatAttribute и DataContractFormatAttribute. Эти свойства влияют на форматирование сообщений. По умолчанию текст сообщения форматируется с заданным Documentстилем. Эти параметры можно указать на уровне контракта службы или на уровне контракта операции.
Замечание
Процедура установки и инструкции по сборке для этого примера находятся в конце этого раздела.
Свойство Style стиля определяет форматирование метаданных WSDL для службы. Возможные значения: Documentи Rpc. RPC означает, что представление WSDL сообщений, обмениваемых для операции, содержит параметры, как если бы это был удаленный вызов процедуры. Ниже приведен пример.
<wsdl:message name="IUseAndStyleCalculator_Add_InputMessage">
<wsdl:part name="n1" type="xsd:double"/>
<wsdl:part name="n2" type="xsd:double"/>
</wsdl:message>
Установка стиля Document означает, что представление WSDL содержит один элемент, представляющий документ, который обменивается на операцию, как показано в следующем примере.
<wsdl:message name="IUseAndStyleCalculator_Add_InputMessage">
<wsdl:part name="parameters" element="tns:Add"/>
</wsdl:message>
Свойство Use определяет формат сообщения. Возможные значения: Literal и Encoded; значение Literalпо умолчанию . Литерал означает, что сообщение является литеральным экземпляром схемы в WSDL, как показано в примере Документ/Литерал ниже.
<Add xmlns="http://Microsoft.ServiceModel.Samples">
<n1>100</n1>
<n2>15.99</n2>
</Add>
Кодированный означает, что схемы в WSDL являются абстрактными спецификациями, которые закодированы в соответствии с правилами, найденными в разделе 5 SOAP 1.1. Ниже приведен пример RPC/Encoded.
<q1:Add xmlns:q1="http://Microsoft.ServiceModel.Samples">
<n1 xsi:type="xsd:double" xmlns="">100</n1>
<n2 xsi:type="xsd:double" xmlns="">15.99</n2>
</q1:Add>
WS-I Основной профиль 1.0 запрещает использование Encoded, и следует использовать его только если это требуется для устаревших служб. Формат Encoded
сообщения доступен только при использовании XmlSerializer.
Чтобы вы могли видеть отправляемые и получаемые сообщения, этот пример основан на трассировке и ведении журнала сообщений. Конфигурация службы и исходный код были изменены, чтобы включить и использовать ведение журнала трассировки и сообщений. Кроме того, WSHttpBinding был настроен без защиты, поэтому зарегистрированные сообщения можно просматривать в незашифрованном формате. Полученные журналы трассировки (System.ServiceModel.e2e и Message.log) должны просматриваться с помощью средства просмотра трассировки службы (SvcTraceViewer.exe). Трассировки настроены на создание в папке C:\LOGS. Создайте папку перед запуском примера. Чтобы просмотреть содержимое сообщения в средстве просмотра трассировки, выберите "Сообщения " в левой и правой области средства.
В следующем коде показан контракт службы, где свойство Use установлено как OperationFormatUse, а формат текста сообщения изменен с обычного OperationFormatStyle на Document.
[ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples"),
XmlSerializerFormat(Style = OperationFormatStyle.Rpc,
Use = OperationFormatUse.Encoded)]
public interface IUseAndStyleCalculator
{
[OperationContract]
double Add(double n1, double n2);
[OperationContract]
double Subtract(double n1, double n2);
[OperationContract]
double Multiply(double n1, double n2);
[OperationContract]
double Divide(double n1, double n2);
}
Чтобы увидеть разницу между различными Use параметрами и Style параметрами, измените их в службе, повторно создайте клиент, запустите пример и изучите файл c:\logs\message.logs с помощью средства просмотра трассировки службы. Кроме того, просмотрите влияние на метаданные http://localhost/ServiceModelSamples/service.svc?wsdl
. Метаданные служб обычно разбиваются на несколько страниц. Основная страница WSDL содержит привязки WSDL, но введите http://localhost/ServiceModelSamples/service.svc?wsdl=wsdl0
, чтобы наблюдать определения сообщений.
Настройка, сборка и запуск примера
Убедитесь, что вы выполнили процедуру настройки One-Time для образцов Windows Communication Foundation.
Создайте каталог C:\LOGS для ведения журнала сообщений. Предоставьте Network Service разрешения на запись для этого каталога.
Чтобы создать версию решения на C# или Visual Basic .NET, следуйте инструкциям по сборке примеров Windows Communication Foundation .
Чтобы запустить пример в конфигурации с одним или несколькими компьютерами, следуйте инструкциям в запуска примеров Windows Communication Foundation.