Megosztás a következőn keresztül:


Útmutató: Metaadatok lekérése a MetadataExchangeClient használatával

Az osztály használatával töltse le a MetadataExchangeClient metaadatokat a WS-MetadataExchange (MEX) protokoll használatával. A rendszer objektumként MetadataSet adja vissza a lekért metaadatfájlokat. A visszaadott MetadataSet objektum objektumgyűjteményt MetadataSection tartalmaz, amelyek mindegyike egy adott metaadat-dialektust és egy azonosítót tartalmaz. A visszaadott metaadatokat fájlba írhatja, vagy ha a visszaadott metaadatok Web Services Description Language (WSDL) dokumentumokat tartalmaznak, importálhatja a metaadatokat a WsdlImporter.

A MetadataExchangeClient címet használó konstruktorok a cím egységes erőforrás-azonosító (URI) sémájának megfelelő statikus osztály kötését MetadataExchangeBindings használják. Másik lehetőségként használhatja a MetadataExchangeClient konstruktort, amely lehetővé teszi a használni kívánt kötés explicit megadását. A megadott kötés az összes metaadat-hivatkozás feloldására szolgál.

A Windows Communication Foundation (WCF) többi ügyféléhez hasonlóan a MetadataExchangeClient típus konstruktort is biztosít az ügyfélvégpont-konfigurációk végpontkonfigurációinak betöltéséhez a végpontkonfiguráció nevével. A megadott végpontkonfigurációnak meg kell adnia a IMetadataExchange szerződést. A végpontkonfigurációban lévő cím nincs betöltve, ezért a GetMetadata címet tartalmazó túlterhelések egyikét kell használnia. Ha egy példány használatával EndpointAddress adja meg a metaadat-címet, a MetadataExchangeClient cím egy MEX-végpontra mutat. Ha URL-címként adja meg a metaadat-címet, akkor azt is meg kell adnia, hogy melyiket MetadataExchangeClientMode használja, MEX vagy HTTP GET.

Fontos

Alapértelmezés szerint a rendszer feloldja az Összes önre mutató hivatkozást, beleértve a MetadataExchangeClient WSDL- és XML-sémaimportálást, és tartalmazza azokat is. Ezt a funkciót letilthatja a ResolveMetadataReferences tulajdonság falsebeállításával. A tulajdonság használatával MaximumResolvedReferences feloldandó hivatkozások maximális számát szabályozhatja. Ezt a tulajdonságot a MaxReceivedMessageSize kötés tulajdonságával együtt használhatja a metaadatok lekérésének szabályozásához.

Metaadatok beszerzése a MetadataExchangeClient használatával

  1. Hozzon létre egy új MetadataExchangeClient objektumot egy kötés, egy végpontkonfiguráció neve vagy a metaadatok címének explicit megadásával.

  2. Konfigurálja az MetadataExchangeClient igényeinek megfelelőt. Megadhatja például a metaadatok igényléséhez használandó hitelesítő adatokat, szabályozhatja a metaadatokra mutató hivatkozások feloldását, és beállíthatja a OperationTimeout tulajdonságot annak szabályozására, hogy mennyi ideig kell visszatérnie a metaadat-kérésnek, mielőtt túllépi az időkorlátot.

  3. Az egyik GetMetadata metódus meghívásával szerezze be a MetadataSet lekért metaadatokat tartalmazó objektumot. Vegye figyelembe, hogy csak akkor használhatja a GetMetadata túlterhelést, amely nem vesz fel argumentumokat, ha explicit módon megadott egy címet a MetadataExchangeClientlétrehozásakor.

Példa

Az alábbi példakód bemutatja, hogyan használható MetadataExchangeClient metaadatfájlok letöltésére és számbavételére.

// 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);

A kód összeállítása

A példakód fordításához hivatkoznia kell a System.ServiceModel.dll szerelvényre, és importálnia kell a névteret System.ServiceModel.Description .

Lásd még