Export a import metadat
V systému Windows Communication Foundation (WCF) je export metadat procesem popisu koncových bodů služby a jejich promítání do paralelního standardizovaného znázornění, které můžou klienti použít k pochopení toho, jak službu používat. Import metadat služby je proces generování ServiceEndpoint instancí nebo částí z metadat služby.
Export metadat
K exportu metadat z System.ServiceModel.Description.ServiceEndpoint instancí použijte implementaci MetadataExporter abstraktní třídy. Typ WsdlExporter je implementace MetadataExporter abstraktní třídy, která je součástí WCF.
Typ System.ServiceModel.Description.WsdlExporter generuje metadata jazyka WSDL (Web Services Description Language) s připojenými výrazy zásad zapouzdřenými v MetadataSet instanci. Instanci můžete použít System.ServiceModel.Description.WsdlExporter k iterativnímu exportu metadat pro ContractDescription objekty a ServiceEndpoint objekty. Můžete také exportovat kolekci ServiceEndpoint objektů a přidružit je ke konkrétnímu názvu služby.
Poznámka:
Můžete použít pouze k exportu WsdlExporter
metadat z ContractDescription
instancí, které obsahují informace o typu CLR (Common Language Runtime), jako ContractDescription
je instance vytvořená pomocí ContractDescription.GetContract
metody nebo vytvořená jako součást ServiceDescription
ServiceHost
instance. Nelze použít k exportu WsdlExporter
metadat z instancí importovaných z ContractDescription
metadat služby nebo vytvořené bez informací o typu.
Import metadat
Import dokumentů WSDL
Chcete-li importovat metadata služby ve WCF, použijte implementaci MetadataImporter abstraktní třídy. Typ System.ServiceModel.Description.WsdlImporter je implementace MetadataImporter abstraktní třídy, která je součástí WCF. Typ WsdlImporter importuje metadata WSDL s připojenými zásadami, které jsou součástí objektu MetadataSet .
Typ WsdlImporter vám dává kontrolu nad tím, jak importovat metadata. Můžete importovat všechny koncové body, všechny vazby nebo všechny kontrakty. Můžete importovat všechny koncové body přidružené ke konkrétní službě WSDL, vazbě nebo typu portu. Můžete také importovat koncový bod pro konkrétní port WSDL, vazbu pro konkrétní vazbu WSDL nebo kontrakt pro konkrétní typ portu WSDL.
Také WsdlImporter zveřejňuje KnownContracts vlastnost, která umožňuje zadat sadu kontraktů, které není nutné importovat. Kontrakty WsdlImporter ve KnownContracts vlastnosti se používají místo importu kontraktu se stejným kvalifikovaným názvem z metadat.
Import zásad
Typ WsdlImporter shromažďuje výrazy zásad připojené ke zprávě, operaci a předmětu zásad koncového bodu a pak používá IPolicyImportExtension implementace v PolicyImportExtensions kolekci k importu výrazů zásad.
Logika importu zásad automaticky zpracovává odkazy na zásady na výrazy zásad ve stejném dokumentu WSDL a je identifikována atributem nebo xml:id
atributemwsu:Id
. Logika importu zásad chrání aplikace před odkazy na cyklickou zásadu omezením velikosti výrazu zásad na 4096 uzlů, kde uzel je jedním z následujících prvků: wsp:Policy
, wsp:All
wsp:ExactlyOne
, , wsp:policyReference
. .
Logika importu zásad také automaticky normalizuje výrazy zásad. Vnořené výrazy zásad a wsp:Optional
atribut nejsou normalizovány. Množství zpracování normalizace je omezeno na 4096 kroků, kde každý krok poskytuje kontrolní výraz zásady nebo podřízený prvek wsp:ExactlyOne
prvku.
Typ WsdlImporter se pokusí o až 32 kombinací alternativ zásad připojených k různým tématům zásad WSDL. Pokud žádná kombinace neimportuje čistě, první kombinace se použije k vytvoření částečné vlastní vazby.
Zpracování chyb
Oba MetadataExporter typy MetadataImporter zpřístupňují Errors
vlastnost, která může obsahovat kolekci chybových a upozorňujících zpráv zjištěných během procesů exportu a importu, které lze použít při implementaci nástrojů.
Typ WsdlImporter obvykle vyvolá výjimku pro výjimku zachycenou během procesu importu a přidá odpovídající chybu do jeho Errors
vlastnosti. Však ImportAllContracts, , ImportAllEndpointsImportAllBindingsa ImportEndpoints metody, však, nevyvolají tyto výjimky, takže musíte zkontrolovat Errors
vlastnost určit, zda došlo k nějaké problémy při volání těchto metod.
Typ WsdlExporter znovu zvětšuje všechny výjimky zachycené během procesu exportu. Tyto výjimky nejsou zachyceny jako chyby ve Errors
vlastnosti. Jakmile vyvolá WsdlExporter výjimku, je v chybném stavu a nelze ji znovu použít. Přidá WsdlExporter do vlastnosti Errors
upozornění, když operaci nelze exportovat, protože používá akce se zástupným znakem a při zobrazení duplicitních názvů vazeb.
V tomto oddílu
Postupy: Import metadat do koncových bodů služby
Popisuje, jak importovat stažená metadata do objektů popisu.
Postupy: Export metadat z koncových bodů služby
Popisuje, jak exportovat objekty popisu do metadat.
ServiceDescription a referenční informace pro WSDL
Popisuje mapování mezi objekty popisu a WSDL.
Postupy: Použití nástroje Svcutil.exe k exportu metadat z kompilovaného kódu služby
Popisuje použití Svcutil.exe k exportu metadat pro služby, kontrakty a datové typy v kompilovaných sestaveních.
Schéma kontraktů dat – referenční informace
Popisuje podmnožinu schématu XML (XSD) používaného DataContractSerializer k popisu typů CLR (Common Language Run-Time) pro serializaci XML.