Eksportowanie niestandardowych metadanych na potrzeby rozszerzenia programu WCF

W programie Windows Communication Foundation (WCF) eksportowanie metadanych jest procesem opisywania punktów końcowych usługi i rzutowania ich na równoległą, standardową reprezentację, przy użyciu których klienci mogą zrozumieć sposób korzystania z usługi. Metadane niestandardowe składają się z elementów XML, których nie można eksportować przez eksporterów metadanych dostarczanych przez system. Zwykle obejmuje to niestandardowe elementy WSDL dla zachowań zdefiniowanych przez użytkownika oraz elementy powiązania i asercji zasad dotyczące możliwości i wymagań powiązań i kontraktów.

W tej sekcji opisano eksportowanie niestandardowych asercji WSDL lub zasad i nie skupiamy się na samym procesie eksportowania. Aby uzyskać więcej informacji na temat używania typów, które eksportuje i importuje metadane niezależnie od tego, czy metadane są niestandardowe, czy konstruowane przez system, zobacz Exporting and Importing Metadata(Eksportowanie i importowanie metadanych).

Omówienie

Gdy metadane są publikowane przy użyciu elementu , są sprawdzane i są generowane zestawy System.ServiceModel.Description.ServiceMetadataBehavior XSD i WSDL — w tym asercja zasad — dla wszystkich kontraktów i powiązań, które usługa WCF może obsługiwać przy użyciu atrybutów i powiązań dostarczanych przez System.ServiceModel.Description.ServiceDescription system. Jednak niestandardowe atrybuty zachowania lub elementy powiązania wymagają obsługi, zanim będzie można je prawidłowo wyeksportować.

W tej sekcji opisano:

  1. Sposób implementacji i korzystania z interfejsu, który uwidacznia dane generowania System.ServiceModel.Description.IWsdlExportExtension WSDL przed opublikowaniem WSDL.

  2. Sposób implementacji i używania interfejsu, który uwidacznia dane zasad przed wyeksportowaniem System.ServiceModel.Description.IPolicyExportExtension asercji zasad w danych WSDL.

Aby uzyskać więcej informacji na temat importowania niestandardowych asercji WSDL i zasad, zobacz Importowanie niestandardowych metadanych dla rozszerzenia WCF.

Eksportowanie niestandardowych elementów WSDL

Zaim implementuj element w zachowaniu operacji, zachowaniu kontraktu, zachowaniu punktu końcowego lub elemencie powiązania (odpowiednio ), a następnie wstaw zachowania lub elementy powiązania do opisu usługi, która ma być IWsdlExportExtension IOperationBehavior IContractBehavior IEndpointBehavior System.ServiceModel.Channels.BindingElement eksportowana. (Aby uzyskać więcej informacji na temat wstawiania zachowań, zobacz Configuring and Extending the Runtime with Behaviors(Konfigurowanie i rozszerzanie środowiska uruchomieniowego za pomocą zachowań). Parametr jest wywoływany dla każdego punktu końcowego, a każdy punkt końcowy najpierw eksportuje IWsdlExportExtension kontrakt, jeśli nie został jeszcze wyeksportowany. W zależności od potrzeb możesz uczestniczyć w obu procesach eksportu:

Metoda ExportContract jest wywoływana we wszystkich IWsdlExportExtension implementacjach w System.ServiceModel.Description.ContractDescription eksportowanych wystąpieniach. Metoda ExportEndpoint jest wywoływana we wszystkich IWsdlExportExtension implementacjach z System.ServiceModel.Description.ServiceEndpoint eksportowanem wystąpieniem.

Aby uzyskać więcej informacji, zobacz How to: Export Custom WSDL (Jak wyeksportować niestandardową publikację WSDL) i przykładową niestandardową publikację WSDL.

Eksportowanie niestandardowych asercji zasad

Zaim implementuj element w elemencie i dodaj element powiązania do powiązania, aby napisać niestandardowe potwierdzenia zasad dotyczące obsługi powiązań i możliwości kontraktów w IPolicyExportExtension BindingElement języku WSDL. Element IPolicyExportExtension jest wywoływany raz podczas eksportowania zaimplementowanego elementu powiązania w powiązaniu i przekazuje element PolicyConversionContext do metody ExportPolicy . Możesz użyć metod w wystąpieniu, aby dodać do asercji zasad dołączonych do powiązania WSDL w tematach PolicyConversionContext komunikatu, operacji lub punktu końcowego.

Aby uzyskać więcej informacji, zobacz How to: Export Custom Policy Assertions ( Jak eksportować niestandardowe asercji zasad).

Zobacz też