Aracılığıyla paylaş


Nasıl yapılır: Meta Verileri Almak için MetadataExchangeClient Kullanma

MetadataExchangeClient WS-MetadataExchange (MEX) protokolunu kullanarak meta verileri indirmek için sınıfını kullanın. Alınan meta veri dosyaları nesne MetadataSet olarak döndürülür. Döndürülen MetadataSet nesne, her biri MetadataSection belirli bir meta veri diyalektini ve tanımlayıcıyı içeren bir nesne koleksiyonu içerir. Döndürülen meta verileri dosyalara yazabilir veya döndürülen meta veriler Web Hizmetleri Açıklama Dili (WSDL) belgeleri içeriyorsa, kullanarak meta verileri WsdlImporteriçeri aktarabilirsiniz.

Adres MetadataExchangeClient alan oluşturucular, statik sınıfta adresin MetadataExchangeBindings Tekdüzen Kaynak Tanımlayıcısı (URI) düzeniyle eşleşen bağlamayı kullanır. Alternatif olarak, kullanılacak bağlamayı MetadataExchangeClient açıkça belirtmenize olanak tanıyan oluşturucuyu kullanabilirsiniz. Belirtilen bağlama tüm meta veri başvurularını çözümlemek için kullanılır.

Diğer tüm Windows Communication Foundation (WCF) istemcilerinde olduğu gibi, türü de MetadataExchangeClient uç nokta yapılandırma adını kullanarak istemci uç noktası yapılandırmalarını yüklemek için bir oluşturucu sağlar. Belirtilen uç nokta yapılandırması sözleşmeyi IMetadataExchange belirtmelidir. Uç nokta yapılandırmasındaki adres yüklenmediğinden, adres alan aşırı yüklemelerden birini GetMetadata kullanmanız gerekir. Meta veri adresini bir EndpointAddress örneği kullanarak belirttiğinizde MetadataExchangeClient , adresin bir MEX uç noktasına işaret ettiğini varsayar. Meta veri adresini URL olarak belirtirseniz, hangi adresin kullanılacağını da belirtmeniz MetadataExchangeClientMode gerekir, MEX veya HTTP GET.

Önemli

Varsayılan olarak, MetadataExchangeClient WSDL ve XML Şeması içeri aktarmaları ve dahil olmak üzere sizin için tüm başvuruları çözümler. özelliğini falseolarak ayarlayarak ResolveMetadataReferences bu işlevi devre dışı bırakabilirsiniz. özelliğini kullanarak MaximumResolvedReferences çözümlemek için en fazla başvuru sayısını denetleyebilirsiniz. Bu özelliği bağlamadaki özelliğiyle MaxReceivedMessageSize birlikte kullanarak ne kadar meta veri alınabileceğini denetleyebilirsiniz.

Meta verileri almak için MetadataExchangeClient kullanmak için

  1. Bağlamayı, uç nokta yapılandırma adını veya meta verilerin adresini açıkça belirterek yeni MetadataExchangeClient bir nesne oluşturun.

  2. öğesini MetadataExchangeClient gereksinimlerinize uyacak şekilde yapılandırın. Örneğin, meta veri isteğinde kullanılacak kimlik bilgilerini belirtebilir, meta veri başvurularının nasıl çözümleneceğini denetleyebilir ve meta veri isteğinin OperationTimeout zaman aşımına uğramadan önce ne kadar süreyle döndürüleceğini denetlemek için özelliğini ayarlayabilirsiniz.

  3. MetadataSet Yöntemlerden birini GetMetadata çağırarak alınan meta verileri içeren nesneyi alın. Yalnızca oluştururken MetadataExchangeClientaçıkça bir adres belirttiyseniz bağımsız değişken içermeyen aşırı yüklemeyi kullanabileceğinizi GetMetadata unutmayın.

Örnek

Aşağıdaki kod örneği, meta veri dosyalarını indirmek ve listelemek için nasıl kullanılacağını MetadataExchangeClient gösterir.

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

Kod Derleniyor

Bu kod örneğini derlemek için System.ServiceModel.dll derlemesine başvurmanız ve ad alanını System.ServiceModel.Description içeri aktarmanız gerekir.

Ayrıca bkz.