De eigenschappen Voor gebruik en stijl instellen
Het useAndStyle-voorbeeld laat zien hoe u de eigenschappen Gebruiken en Stijl op de XmlSerializerFormatAttribute en de DataContractFormatAttribute. Deze eigenschappen zijn van invloed op de indeling van berichten. Standaard is de berichttekst opgemaakt met de stijl ingesteld op Document. Deze instellingen kunnen worden opgegeven op het niveau van het servicecontract of op het niveau van het bewerkingscontract.
Notitie
De installatieprocedure en build-instructies voor dit voorbeeld bevinden zich aan het einde van dit onderwerp.
De Style stijleigenschap bepaalt hoe de WSDL-metagegevens voor de service zijn opgemaakt. Mogelijke waarden zijn Document, en Rpc. RPC betekent dat de WSDL-weergave van berichten die zijn uitgewisseld voor een bewerking parameters bevat alsof het een externe procedureaanroep was. Hier volgt een voorbeeld.
<wsdl:message name="IUseAndStyleCalculator_Add_InputMessage">
<wsdl:part name="n1" type="xsd:double"/>
<wsdl:part name="n2" type="xsd:double"/>
</wsdl:message>
Het instellen van de stijl betekent Document dat de WSDL-weergave één element bevat dat het document vertegenwoordigt dat wordt uitgewisseld voor een bewerking, zoals wordt weergegeven in het volgende voorbeeld.
<wsdl:message name="IUseAndStyleCalculator_Add_InputMessage">
<wsdl:part name="parameters" element="tns:Add"/>
</wsdl:message>
De Use eigenschap bepaalt de indeling van het bericht. Mogelijke waarden zijn Literal en Encoded; de standaardwaarde is Literal. Letterlijk betekent dat het bericht een letterlijk exemplaar van het schema in de WSDL is, zoals wordt weergegeven in het volgende document-/letterlijke voorbeeld.
<Add xmlns="http://Microsoft.ServiceModel.Samples">
<n1>100</n1>
<n2>15.99</n2>
</Add>
Gecodeerd betekent dat de schema's in de WSDL abstracte specificaties zijn die zijn gecodeerd volgens de regels in SOAP 1.1 sectie 5. Hier volgt een voorbeeld van RPC/Gecodeerd.
<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>
Het WS-I Basic Profile 1.0 verbiedt het gebruik van Encoded en u moet deze alleen gebruiken wanneer dit vereist is voor verouderde services. De Encoded
berichtindeling is alleen beschikbaar wanneer u xmlSerializer gebruikt.
Dit voorbeeld is gebaseerd op tracering en berichtregistratie om u te laten zien dat de verzonden en ontvangen berichten worden verzonden en ontvangen. De serviceconfiguratie en broncode zijn gewijzigd om tracering en logboekregistratie van berichten in te schakelen en te gebruiken. Bovendien is de WSHttpBinding configuratie zonder beveiliging geconfigureerd, zodat de vastgelegde berichten in een niet-versleutelde indeling kunnen worden weergegeven. De resulterende traceringslogboeken (System.ServiceModel.e2e en Message.log) moeten worden weergegeven met behulp van het hulpprogramma Service Trace Viewer (SvcTraceViewer.exe). De traceringen zijn geconfigureerd om te worden gemaakt in de map C:\LOGS. Maak de map voordat u het voorbeeld uitvoert. Als u de inhoud van berichten wilt weergeven in het hulpmiddel Traceer, selecteert u Berichten in zowel de linker- als de rechterdeelvensters van het hulpprogramma.
De volgende code toont het servicecontract waarop de Use eigenschap is ingesteld OperationFormatUse en de indeling van de berichttekst is gewijzigd van de standaardinstelling OperationFormatStyle in 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);
}
Als u het verschil tussen de verschillende Use instellingen en Style instellingen wilt zien, wijzigt u deze in de service, genereert u de client opnieuw, voert u het voorbeeld uit en bekijkt u het bestand c:\logs\message.logs met het hulpprogramma Service Trace Viewer. Bekijk ook de impact op de metagegevens door deze weer te geven http://localhost/ServiceModelSamples/service.svc?wsdl
. De metagegevens voor services worden doorgaans onderverdeeld in meerdere pagina's. De hoofdpagina wsdl bevat de WSDL-bindingen, maar bekijk http://localhost/ServiceModelSamples/service.svc?wsdl=wsdl0
de berichtdefinities.
Het voorbeeld instellen, compileren en uitvoeren
Zorg ervoor dat u de eenmalige installatieprocedure voor de Windows Communication Foundation-voorbeelden hebt uitgevoerd.
Maak een map C:\LOGS voor het vastleggen van berichten. Geef de gebruikersnetwerkservice schrijfmachtigingen voor deze map.
Als u de C# of Visual Basic .NET-editie van de oplossing wilt bouwen, volgt u de instructies in het bouwen van de Windows Communication Foundation-voorbeelden.
Als u het voorbeeld wilt uitvoeren in een configuratie met één of meerdere computers, volgt u de instructies in Het uitvoeren van de Windows Communication Foundation-voorbeelden.