Sdílet prostřednictvím


Postupy: Načítání metadat pomocí vlastnosti MetadataExchangeClient

MetadataExchangeClient Pomocí třídy můžete stahovat metadata pomocí protokolu WS-MetadataExchange (MEX). Načtené soubory metadat se vrátí jako MetadataSet objekt. Vrácený MetadataSet objekt obsahuje kolekci MetadataSection objektů, z nichž každý obsahuje konkrétní dialekt metadat a identifikátor. Vrácená metadata můžete napsat do souborů nebo, pokud vrácená metadata obsahují dokumenty WSDL (Web Services Description Language), můžete metadata importovat pomocí příkazu WsdlImporter.

Konstruktory MetadataExchangeClient , které přebírají adresu, používají vazbu na MetadataExchangeBindings statické třídě, která odpovídá schématu identifikátoru URI (Uniform Resource Identifier) adresy. Alternativně můžete použít MetadataExchangeClient konstruktor, který umožňuje explicitně zadat vazbu, která se má použít. Zadaná vazba se používá k překladu všech odkazů na metadata.

Stejně jako jakýkoli jiný klient MetadataExchangeClient Wcf (Windows Communication Foundation) poskytuje typ konstruktor pro načítání konfigurací koncových bodů klienta pomocí názvu konfigurace koncového bodu koncového bodu. Zadaná konfigurace koncového IMetadataExchange bodu musí zadat kontrakt. Adresa v konfiguraci koncového bodu není načtena, takže musíte použít jedno z GetMetadata přetížení, které přebírají adresu. Když zadáte adresu metadat pomocí EndpointAddress instance, předpokládá se, MetadataExchangeClient že adresa odkazuje na koncový bod MEX. Pokud jako adresu URL zadáte adresu metadat, musíte také určit, která MetadataExchangeClientMode se má použít, MEX nebo HTTP GET.

Důležité

Ve výchozím nastavení MetadataExchangeClient přeloží všechny odkazy za vás, včetně importů schématu WSDL a XML a zahrnuje. Tuto funkci můžete zakázat nastavením ResolveMetadataReferences vlastnosti na falsehodnotu . Pomocí vlastnosti můžete určit maximální počet odkazů, které se mají přeložit MaximumResolvedReferences . Tuto vlastnost můžete použít ve spojení s MaxReceivedMessageSize vlastností vazby k řízení, kolik metadat se načte.

Použití MetadataExchangeClient k získání metadat

  1. Vytvořte nový MetadataExchangeClient objekt explicitně zadáním vazby, názvu konfigurace koncového bodu nebo adresy metadat.

  2. Nakonfigurujte si MetadataExchangeClient , aby vyhovovala vašim potřebám. Můžete například zadat přihlašovací údaje, které se mají použít při žádosti o metadata, řídit způsob řešení odkazů na metadata a nastavit OperationTimeout vlastnost tak, aby řídila, jak dlouho se má požadavek na metadata vrátit, než vyprší časový limit.

  3. MetadataSet Získejte objekt, který obsahuje načtená metadata voláním jedné z GetMetadata metod. Všimněte si, že můžete použít GetMetadata pouze přetížení, které nepřijímá žádné argumenty, pokud jste explicitně zadali adresu při vytváření MetadataExchangeClient.

Příklad

Následující příklad kódu ukazuje, jak použít MetadataExchangeClient ke stažení a výčtu souborů metadat.

// Get metadata documents.
Console.WriteLine("URI of the metadata documents retrieved:");
MetadataExchangeClient metaTransfer
  = new MetadataExchangeClient(httpGetMetaAddress.Uri, MetadataExchangeClientMode.HttpGet);
metaTransfer.ResolveMetadataReferences = true;
MetadataSet otherDocs = metaTransfer.GetMetadata();
foreach (MetadataSection doc in otherDocs.MetadataSections)
    Console.WriteLine(doc.Dialect + " : " + doc.Identifier);

Probíhá kompilace kódu

Chcete-li zkompilovat tento příklad kódu, musíte odkazovat na System.ServiceModel.dll sestavení a importovat System.ServiceModel.Description obor názvů.

Viz také