Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W programie Windows Communication Foundation (WCF) eksportowanie metadanych to proces opisywania punktów końcowych usługi i projekcji ich w równoległą, ustandaryzowaną reprezentację, która umożliwia klientom zrozumienie sposobu korzystania z usługi. Importowanie metadanych usługi to proces generowania ServiceEndpoint wystąpień lub części z metadanych usługi.
Eksportowanie metadanych
Aby wyeksportować metadane z System.ServiceModel.Description.ServiceEndpoint wystąpień, użyj implementacji klasy abstrakcyjnej MetadataExporter . Typ WsdlExporter jest implementacją abstrakcyjnej klasy MetadataExporter, która jest częścią programu WCF.
Typ System.ServiceModel.Description.WsdlExporter generuje metadane języka opisu usług sieciowych (WSDL) z dołączonymi wyrażeniami zasad zamkniętymi w wystąpieniu MetadataSet. Możesz użyć wystąpienia System.ServiceModel.Description.WsdlExporter do eksportowania metadanych iteracyjnie dla obiektów ContractDescription i obiektów ServiceEndpoint. Możesz również wyeksportować kolekcję ServiceEndpoint obiektów i skojarzyć je z określoną nazwą usługi.
Uwaga / Notatka
Można używać WsdlExporter tylko do eksportowania metadanych z ContractDescription wystąpień zawierających informacje o typie środowiska uruchomieniowego języka wspólnego (CLR), takich jak wystąpienie ContractDescription utworzone przy użyciu metody ContractDescription.GetContract lub utworzone jako część ServiceDescription dla wystąpienia ServiceHost. Nie można używać elementu WsdlExporter do eksportowania metadanych z wystąpień ContractDescription zaimportowanych z metadanych usługi ani konstruowanych bez informacji o typie.
Importowanie metadanych
Importowanie dokumentów WSDL
Aby zaimportować metadane usługi w programie WCF, użyj implementacji klasy abstrakcyjnej MetadataImporter . Typ System.ServiceModel.Description.WsdlImporter jest implementacją abstrakcyjnej klasy MetadataImporter, która jest częścią programu WCF. Typ WsdlImporter importuje metadane WSDL z dołączonymi zasadami, umieszczonymi w obiekcie MetadataSet.
Typ WsdlImporter zapewnia kontrolę nad sposobem importowania metadanych. Możesz zaimportować wszystkie punkty końcowe, wszystkie powiązania lub wszystkie kontrakty. Możesz zaimportować wszystkie punkty końcowe skojarzone z określoną usługą WSDL, powiązaniem lub typem portu. Możesz również zaimportować punkt końcowy dla określonego portu WSDL, powiązanie dla określonego powiązania WSDL lub kontrakt dla określonego typu portu WSDL.
Obiekt WsdlImporter udostępnia również właściwość KnownContracts, która pozwala określić zestaw kontraktów, które nie trzeba importować. Obiekt WsdlImporter używa kontraktów we KnownContracts właściwości zamiast importowania kontraktu o tej samej kwalifikowanej nazwie z metadanych.
Importowanie zasad
Typ WsdlImporter zbiera wyrażenia zasad dołączone do tematów komunikatów, operacji i zasad punktu końcowego, a następnie używa IPolicyImportExtension implementacji w PolicyImportExtensions kolekcji do importowania wyrażeń zasad.
Logika importu zasad automatycznie obsługuje odwołania zasad do wyrażeń zasad w tym samym dokumencie WSDL i jest identyfikowana z atrybutem wsu:Id lub xml:id . Logika importu zasad chroni aplikacje przed odwołaniami do zasad cyklicznych, ograniczając rozmiar wyrażenia zasad do 4096 węzłów, gdzie węzeł jest jednym z następujących elementów: wsp:Policy, , wsp:Allwsp:ExactlyOne, wsp:policyReference.
Logika importu zasad automatycznie normalizuje również wyrażenia zasad. Zagnieżdżone wyrażenia zasad i wsp:Optional atrybut nie są znormalizowane. Ilość przetwarzania normalizacji jest ograniczona do 4096 kroków, z których każdy daje asercję polityki lub element podrzędny wsp:ExactlyOne elementu.
Typ WsdlImporter próbuje uzyskać maksymalnie 32 kombinacje alternatywnych zasad dołączonych do różnych tematów zasad WSDL. Jeśli żadna kombinacja nie importuje się bez problemów, pierwsza kombinacja jest używana do konstruowania częściowego powiązania niestandardowego.
Obsługa błędów
Zarówno typy MetadataExporter, jak i MetadataImporter uwidaczniają właściwość Errors, która może zawierać kolekcję komunikatów o błędach i ostrzeżeniach napotkanych podczas procesów eksportu oraz importu, którą można wykorzystać przy implementowaniu narzędzi.
Typ WsdlImporter zazwyczaj zgłasza wyjątek dla wyjątku przechwyconego podczas procesu importowania i dodaje odpowiedni błąd do jego Errors właściwości. Metody ImportAllContracts, ImportAllBindings, ImportAllEndpointsi ImportEndpoints nie zgłaszają jednak tych wyjątków, dlatego należy sprawdzić Errors właściwość , aby określić, czy wystąpiły jakiekolwiek problemy podczas wywoływania tych metod.
Typ WsdlExporter ponownie zgłasza wszelkie wyjątki przechwycone podczas procesu eksportowania. Te wyjątki nie są traktowane jako błędy we właściwości Errors. Gdy WsdlExporter zgłosi wyjątek, przechodzi w stan błędu i nie można go ponownie użyć. Polecenie WsdlExporter powoduje dodanie ostrzeżeń do jej Errors właściwości, gdy nie można wyeksportować operacji, ponieważ używa akcji symboli wieloznacznych i po napotkaniu zduplikowanych nazw powiązań.
W tej Sekcji
Instrukcje: importowanie metadanych do punktów końcowych usługi Opisuje sposób importowania pobranych metadanych do obiektów opisu.
Instrukcje: eksportowanie metadanych z punktów końcowych usługi Opisuje sposób eksportowania obiektów opisu do metadanych.
Dokumentacja usługi ServiceDescription i WSDL Opisuje mapowanie między obiektami opisu i językiem WSDL.
Instrukcje: używanie Svcutil.exe do eksportowania metadanych z skompilowanego kodu usługi Opisuje użycie Svcutil.exe do eksportowania metadanych dla usług, kontraktów i typów danych w skompilowanych zestawach.
Referencja schematu kontraktu danych Opisuje podzestaw schematu XML (XSD) używanego przez DataContractSerializer do opisywania typów CLR na potrzeby serializacji XML.