Ú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 false
beá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
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.
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.
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 .