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 principkontroller och fokuserar inte på själva exportprocessen. 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 principkontroller – genereras för alla kontrakt och bindningar som WCF kan stödja med hjälp av attribut och bindningar som tillhandahålls av systemet. Anpassade beteendeattribut eller bindningselement kräver dock stöd innan de kan exporteras korrekt.
I det här avsnittet beskrivs:
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.
Så här implementerar och använder System.ServiceModel.Description.IPolicyExportExtension du gränssnittet, som exponerar principdata för dig innan du exporterar principkontrollerna i WSDL-data.
Mer information om hur du importerar anpassade WSDL- och principkontroller 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:
WsdlContractConversionContext Använd för att ändra exporterade metadata i ExportContract -metoden.
WsdlEndpointConversionContext Använd för att ändra exporterade metadata för slutpunkten i ExportEndpoint metoden.
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 principkontroller
IPolicyExportExtension Implementera på en BindingElement och lägg till bindningselementet i bindningen för att skriva anpassade principkontroller 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å instansen PolicyConversionContext för att lägga till de principkontroller som är kopplade till WSDL-bindningen i meddelande-, åtgärds- eller slutpunktsämnena.
Mer information finns i Så här exporterar du anpassade principkontroller.