Sdílet prostřednictvím


Nastavení vlastností použití a stylu

ukázka UseAndStyle demonstruje, jak použít vlastnosti Použití a Styl na XmlSerializerFormatAttribute a DataContractFormatAttribute. Tyto vlastnosti ovlivňují formátování zpráv. Ve výchozím nastavení je text zprávy formátován stylem nastaveným na Document. Tato nastavení je možné zadat buď na úrovni kontraktu služby, nebo na úrovni smlouvy o provozu.

Poznámka:

Postup nastavení a pokyny k sestavení pro tuto ukázku najdete na konci tohoto tématu.

Vlastnost Style stylu určuje, jak jsou metadata WSDL pro službu formátována. Možné hodnoty jsou Documenta Rpc. RPC znamená, že reprezentace zpráv WSDL vyměněných pro operaci obsahuje parametry, jako by šlo o vzdálené volání procedury. Následuje příklad.

<wsdl:message name="IUseAndStyleCalculator_Add_InputMessage">
  <wsdl:part name="n1" type="xsd:double"/>
  <wsdl:part name="n2" type="xsd:double"/>
</wsdl:message>

Nastavení stylu na Document znamená, že reprezentace WSDL obsahuje jeden prvek, který představuje dokument, který je vyměněn pro operaci, jak je znázorněno v následujícím příkladu.

<wsdl:message name="IUseAndStyleCalculator_Add_InputMessage">
  <wsdl:part name="parameters" element="tns:Add"/>
</wsdl:message>

Vlastnost Use určuje formát zprávy. Možné hodnoty jsou Literal a Encoded; výchozí hodnota je Literal. Literál znamená, že zpráva je literální instance schématu ve WSDL, jak je znázorněno v následujícím příkladu dokumentu nebo literálu.

<Add xmlns="http://Microsoft.ServiceModel.Samples">
  <n1>100</n1>
  <n2>15.99</n2>
</Add>

Kódované znamená, že schémata ve WSDL jsou abstraktní specifikace, které jsou kódovány podle pravidel nalezených v protokolu SOAP 1.1 oddílu 5. Následuje příklad 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>

Základní profil WS-I 1.0 zakazuje použití Encoded a měli byste ho používat pouze tehdy, pokud je to vyžadováno staršími službami. Formát Encoded zprávy je k dispozici pouze při použití XmlSerializer.

Aby bylo možné zobrazit odesílané a přijaté zprávy, je tato ukázka založená na trasování a protokolování zpráv. Konfigurace služby a zdrojový kód byly upraveny tak, aby povolovaly a využívaly protokolování trasování a zpráv. Kromě toho WSHttpBinding byl nakonfigurován bez zabezpečení, takže protokolované zprávy lze zobrazit v nešifrovaném formátu. Výsledné protokoly trasování (System.ServiceModel.e2e a Message.log) by se měly zobrazit pomocí nástroje Service Trace Viewer (SvcTraceViewer.exe). Stopy jsou konfigurovány tak, aby byly vytvořeny ve složce C:\LOGS. Před spuštěním ukázky vytvořte složku. Pokud chcete zobrazit obsah zpráv v nástroji Trace Viewer, vyberte Zprávy v levém i pravém podokně nástroje.

Následující kód ukazuje kontrakt služby s vlastností nastavenou Use na OperationFormatUse a formát textu zprávy se změnil z výchozí OperationFormatStyle na 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);
}

Pokud chcete zjistit rozdíl mezi různými Use a Style nastaveními, upravte je ve službě, vygenerujte klienta, spusťte ukázku a prozkoumejte soubor c:\logs\message.logs pomocí nástroje Service Trace Viewer. Sledujte také dopad na metadata zobrazením http://localhost/ServiceModelSamples/service.svc?wsdl. Metadata pro služby se obvykle rozdělí na více stránek. Hlavní stránka wsdl obsahuje vazby WSDL, ale podívejte se na http://localhost/ServiceModelSamples/service.svc?wsdl=wsdl0 pro zobrazení definic zpráv.

Jak nastavit, sestavit a spustit ukázku

  1. Ujistěte se, že jste provedli instalační proceduru One-Time pro ukázky Windows Communication Foundation.

  2. Vytvořte adresář C:\LOGS pro protokolování zpráv. Udělte uživatelské síťové službě oprávnění k zápisu do tohoto adresáře.

  3. Pokud chcete sestavit verzi C# nebo Visual Basic .NET řešení, postupujte podle pokynů v Sestavení ukázek Windows Communication Foundation.

  4. Pokud chcete spustit ukázku v konfiguraci pro jeden počítač nebo pro více počítačů, postupujte podle pokynů v Spuštění ukázek Windows Communication Foundation.