Dela via


Exportera anpassade metadata för ett WCF-tillägg

I Windows Communication Foundation (WCF) är metadataexport processen för att beskriva tjänstslutpunkter och projicera dem i en parallell, standardiserad representation som klienter kan använda för att förstå hur tjänsten ska användas. Anpassade metadata består av XML-element som de systembaserade metadataexportörerna inte kan exportera. Detta inkluderar vanligtvis anpassade WSDL-element för användardefinierade beteenden och bindningselement och principkontroller om funktionerna och kraven för bindningar och kontrakt.

Det här avsnittet beskriver export av anpassade WSDL- eller policypåståenden och fokuserar inte på exportprocessen i sig. Mer information om hur du använder de typer som exporterar och importerar metadata oavsett om metadata är anpassade eller systemkonstruerade finns i Exportera och importera metadata.

Översikt

När metadata publiceras med hjälp av System.ServiceModel.Description.ServiceMetadataBehaviorSystem.ServiceModel.Description.ServiceDescription, granskas och XSD och WSDL – inklusive policyanspråk – genereras för alla kontrakt och bindningar som WCF kan stödja med hjälp av systemtillhandahållna attribut och bindningar. Anpassade beteendeattribut eller bindningselement kräver dock stöd innan de kan exporteras korrekt.

I det här avsnittet beskrivs:

  1. Så här implementerar och använder System.ServiceModel.Description.IWsdlExportExtension du gränssnittet, som exponerar WSDL-generationsdata för dig innan du publicerar WSDL.

  2. Så här implementerar och använder du System.ServiceModel.Description.IPolicyExportExtension-gränssnittet, som exponerar principdata för dig innan du exporterar principuttrycken i WSDL-data.

Mer information om hur du importerar anpassade WSDL- och principuttryck finns i Importera anpassade metadata för ett WCF-tillägg.

Exportera anpassade WSDL-element

IWsdlExportExtension Implementera på ett åtgärdsbeteende, kontraktbeteende, slutpunktsbeteende eller bindningselement (IOperationBehavior, IContractBehavior, IEndpointBehavioreller System.ServiceModel.Channels.BindingElement respektive) och infoga beteenden eller bindningselement i beskrivningen av den tjänst som du försöker exportera. (Mer information om hur du infogar beteenden finns i Konfigurera och utöka körningen med beteenden). IWsdlExportExtension Anropas för varje slutpunkt och varje slutpunkt exporterar kontraktet först om det inte redan har exporterats. Du kan delta i antingen exportprocessen, beroende på dina behov:

Metoden ExportContract anropas för alla IWsdlExportExtension implementeringar i den System.ServiceModel.Description.ContractDescription instans som exporteras. Metoden ExportEndpoint anropas för alla IWsdlExportExtension implementeringar med den System.ServiceModel.Description.ServiceEndpoint instans som exporteras.

Mer information finns i Så här: Exportera anpassad WSDL och exempel på anpassad WSDL-publikation.

Exportera anpassade policypåståenden

Implementera IPolicyExportExtension på en BindingElement och lägg till bindningselementet till bindningen för att skriva anpassade princippåståenden om bindningsstöd och kontraktfunktioner i WSDL. IPolicyExportExtension Anropas en gång när du exporterar det implementerade bindningselementet i en bindning och skickar PolicyConversionContext till ExportPolicy -metoden. Du kan använda metoderna på PolicyConversionContext-instansen för att lägga till de policyuttryck som är kopplade till WSDL-bindningen vid meddelande-, operation- eller slutpunktsteman.

För mer information, se Så här exporterar du anpassade policysatser.

Se även