Aracılığıyla paylaş


MetadataResolver.Resolve Yöntem

Tanım

Bir meta veri adresini indirir ve bu hizmetin nesnelerine ServiceEndpoint çözümler.

Aşırı Yüklemeler

Resolve(IEnumerable<ContractDescription>, EndpointAddress)

Belirtilen meta veri adresini kullanarak belirtilen sözleşmelerin nesnelerine ServiceEndpoint bir meta veri adresini çözümler.

Resolve(Type, EndpointAddress)

Bir meta veri adresini, belirtilen bir adreste belirtilen bir sözleşme için bir nesne koleksiyonuna ServiceEndpoint indirir ve çözümler.

Resolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient)

Belirtilen meta veri adresini ve MetadataExchangeClientkullanarak belirtilen sözleşmelerin nesnelerine ServiceEndpoint bir meta veri adresini çözümler.

Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode)

Belirtilen adres ve aktarım modunu kullanarak belirtilen sözleşmelerin nesnelerine ServiceEndpoint bir meta veri adresini çözümler.

Resolve(Type, Uri, MetadataExchangeClientMode)

Belirtilen adres ve aktarım modunu kullanarak belirtilen sözleşmenin nesnelerine ServiceEndpoint bir meta veri adresini çözümler.

Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode, MetadataExchangeClient)

Belirtilen adresi, aktarım modunu ve aktarım istemcisini ServiceEndpoint kullanarak belirtilen sözleşmelerin nesnelerine bir meta veri adresini çözümler.

Açıklamalar

Meta verileri indirmek ancak bilgileri nesnelere çözümlemek ServiceEndpoint için doğrudan kullanın System.ServiceModel.Description.MetadataExchangeClient .

Tüm zaman uyumlu ve zaman uyumsuz Resolve yöntemler için, hiçbir uç nokta içeri aktarılmadıysa veya sözleşmeyle eşleşen bir uç nokta yoksa boş bir koleksiyon döndürülür. Boş bir koleksiyon döndürülürse bir uyarı izlemesi yazılır.

Resolve(IEnumerable<ContractDescription>, EndpointAddress)

Belirtilen meta veri adresini kullanarak belirtilen sözleşmelerin nesnelerine ServiceEndpoint bir meta veri adresini çözümler.

public:
 static System::ServiceModel::Description::ServiceEndpointCollection ^ Resolve(System::Collections::Generic::IEnumerable<System::ServiceModel::Description::ContractDescription ^> ^ contracts, System::ServiceModel::EndpointAddress ^ address);
public static System.ServiceModel.Description.ServiceEndpointCollection Resolve (System.Collections.Generic.IEnumerable<System.ServiceModel.Description.ContractDescription> contracts, System.ServiceModel.EndpointAddress address);
static member Resolve : seq<System.ServiceModel.Description.ContractDescription> * System.ServiceModel.EndpointAddress -> System.ServiceModel.Description.ServiceEndpointCollection
Public Shared Function Resolve (contracts As IEnumerable(Of ContractDescription), address As EndpointAddress) As ServiceEndpointCollection

Parametreler

contracts
IEnumerable<ContractDescription>

Meta verilerin indirilip çözümlenmesi için sözleşmeler.

address
EndpointAddress

Meta veri adresi.

Döndürülenler

ServiceEndpointCollection

Belirtilen sözleşme için nesne koleksiyonu ServiceEndpoint .

Özel durumlar

Adres veya sözleşme koleksiyonu şeklindedir null.

contracts boş, en az bir üyesi contracts null veya contracts aynı ad ve ad alanına sahip birden fazla sözleşme içeriyor.

Açıklamalar

üzerindeki varsayılan ayarlar System.ServiceModel.Description.MetadataExchangeClient meta verileri almak için kullanılır ve varsayılan System.ServiceModel.Description.MetadataExchangeClientMode olarak kullanılır MetadataExchangeClientMode.MetadataExchange.

Meta verileri indirmek ancak bilgileri nesnelere çözümlememek ServiceEndpoint için öğesini doğrudan kullanın System.ServiceModel.Description.MetadataExchangeClient .

Not

Hiçbir uç nokta içeri aktarılmadıysa veya sözleşmeyle eşleşen bir uç nokta yoksa boş bir koleksiyon döndürülür. Boş bir koleksiyon döndürülürse bir uyarı izlemesi yazılır.

Şunlara uygulanır

Resolve(Type, EndpointAddress)

Bir meta veri adresini, belirtilen bir adreste belirtilen bir sözleşme için bir nesne koleksiyonuna ServiceEndpoint indirir ve çözümler.

public:
 static System::ServiceModel::Description::ServiceEndpointCollection ^ Resolve(Type ^ contract, System::ServiceModel::EndpointAddress ^ address);
public static System.ServiceModel.Description.ServiceEndpointCollection Resolve (Type contract, System.ServiceModel.EndpointAddress address);
static member Resolve : Type * System.ServiceModel.EndpointAddress -> System.ServiceModel.Description.ServiceEndpointCollection
Public Shared Function Resolve (contract As Type, address As EndpointAddress) As ServiceEndpointCollection

Parametreler

contract
Type

Meta verilerin indirilip çözümlenmesi için sözleşmeler.

address
EndpointAddress

Meta veri adresi.

Döndürülenler

ServiceEndpointCollection

Belirtilen sözleşme için nesne koleksiyonu ServiceEndpoint .

Özel durumlar

Adres veya sözleşme şeklindedir null.

Örnekler

Aşağıdaki kod örneği, meta verileri bir hizmet örneğine bağlanmak için kullanılan bir nesne koleksiyonu ServiceEndpoint olarak döndürmek için sınıfının kullanımını MetadataResolver gösterir.

// Get the endpoints for such a service
ServiceEndpointCollection endpoints = MetadataResolver.Resolve(typeof(SampleServiceClient), metaAddress);
Console.WriteLine("Trying all available WS-Transfer metadata endpoints...");

foreach (ServiceEndpoint point in endpoints)
{
    if (point != null)
    {
        // Create a new wcfClient using retrieved endpoints.
        wcfClient = new SampleServiceClient(point.Binding, point.Address);
        Console.WriteLine(
          wcfClient.SampleMethod("Client used the "
          + point.Address.ToString()
          + " address.")
        );
        wcfClient.Close();
    }
}

Açıklamalar

Resolve Meta verileri indirirken ve çözerken kullanılacak sözleşmeyi ve meta veri adresini belirtmek için yöntemini kullanın.

üzerindeki varsayılan ayarlar System.ServiceModel.Description.MetadataExchangeClient meta verileri almak için kullanılır ve varsayılan System.ServiceModel.Description.MetadataExchangeClientMode olarak kullanılır MetadataExchangeClientMode.MetadataExchange.

Meta verileri indirmek ancak bilgileri nesnelere çözümlememek ServiceEndpoint için öğesini doğrudan kullanın System.ServiceModel.Description.MetadataExchangeClient .

Not

Hiçbir uç nokta içeri aktarılmadıysa veya sözleşmeyle eşleşen bir uç nokta yoksa boş bir koleksiyon döndürülür. Boş bir koleksiyon döndürülürse bir uyarı izlemesi yazılır.

Bu yöntem, bir sözleşme türü belirtmenizi gerektirir. İstemci kodunda hizmet arabirimini bildirerek veya Svcutil.exe tarafından oluşturulan bir WCF istemcisi kullanarak sözleşmeyi belirtebilirsiniz. Arabirim değişirse (örneğin, yeni bir işlem ekleyerek) istemci kodundaki arabirimi güncelleştirmeniz veya yeni bir WCF istemcisi oluşturmanız gerekir. Bunu yapmazsanız, bir özel durum oluşturulur. Örneğin, Add(), Sub(), Mult() ve Div() tanımlayan ICalculator adlı bir hizmet sözleşmesi uygulayan bir hizmetiniz vardır. Bir istemci uygulaması oluşturur ve WCF istemcisi oluşturursunuz. Ardından ICalculator'a Echo() adlı bir yöntem eklersiniz. Daha sonra yeni bir WCF istemcisi oluşturmadan çağıran Resolve(Type, EndpointAddress) bir uygulama yazarsanız aşağıdaki özel durumu alırsınız.

Unhandled Exception: System.ServiceModel.Description.WsdlImporter+WsdlImportException: Cannot locate operation Echo in Contract ICalculator.

Şunlara uygulanır

Resolve(IEnumerable<ContractDescription>, EndpointAddress, MetadataExchangeClient)

Belirtilen meta veri adresini ve MetadataExchangeClientkullanarak belirtilen sözleşmelerin nesnelerine ServiceEndpoint bir meta veri adresini çözümler.

public:
 static System::ServiceModel::Description::ServiceEndpointCollection ^ Resolve(System::Collections::Generic::IEnumerable<System::ServiceModel::Description::ContractDescription ^> ^ contracts, System::ServiceModel::EndpointAddress ^ address, System::ServiceModel::Description::MetadataExchangeClient ^ client);
public static System.ServiceModel.Description.ServiceEndpointCollection Resolve (System.Collections.Generic.IEnumerable<System.ServiceModel.Description.ContractDescription> contracts, System.ServiceModel.EndpointAddress address, System.ServiceModel.Description.MetadataExchangeClient client);
static member Resolve : seq<System.ServiceModel.Description.ContractDescription> * System.ServiceModel.EndpointAddress * System.ServiceModel.Description.MetadataExchangeClient -> System.ServiceModel.Description.ServiceEndpointCollection
Public Shared Function Resolve (contracts As IEnumerable(Of ContractDescription), address As EndpointAddress, client As MetadataExchangeClient) As ServiceEndpointCollection

Parametreler

contracts
IEnumerable<ContractDescription>

Meta verilerin indirilip çözümlenmesi için sözleşmeler.

address
EndpointAddress

Meta veri adresi.

client
MetadataExchangeClient

Meta MetadataExchangeClient verileri almak için kullanılır.

Döndürülenler

ServiceEndpointCollection

Belirtilen sözleşme için nesne koleksiyonu ServiceEndpoint .

Özel durumlar

Adres, sözleşme koleksiyonu veya istemci şeklindedir null.

contracts boş, en az bir üyesi contracts null veya contracts aynı ad ve ad alanına sahip birden fazla sözleşme içeriyor.

Açıklamalar

Varsayılan değerdir System.ServiceModel.Description.MetadataExchangeClientMode MetadataExchangeClientMode.MetadataExchange.

Meta verileri indirmek ancak bilgileri nesnelere çözümlememek ServiceEndpoint için öğesini doğrudan kullanın System.ServiceModel.Description.MetadataExchangeClient .

Not

Hiçbir uç nokta içeri aktarılmadıysa veya sözleşmeyle eşleşen bir uç nokta yoksa boş bir koleksiyon döndürülür. Boş bir koleksiyon döndürülürse bir uyarı izlemesi yazılır.

Şunlara uygulanır

Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode)

Belirtilen adres ve aktarım modunu kullanarak belirtilen sözleşmelerin nesnelerine ServiceEndpoint bir meta veri adresini çözümler.

public:
 static System::ServiceModel::Description::ServiceEndpointCollection ^ Resolve(System::Collections::Generic::IEnumerable<System::ServiceModel::Description::ContractDescription ^> ^ contracts, Uri ^ address, System::ServiceModel::Description::MetadataExchangeClientMode mode);
public static System.ServiceModel.Description.ServiceEndpointCollection Resolve (System.Collections.Generic.IEnumerable<System.ServiceModel.Description.ContractDescription> contracts, Uri address, System.ServiceModel.Description.MetadataExchangeClientMode mode);
static member Resolve : seq<System.ServiceModel.Description.ContractDescription> * Uri * System.ServiceModel.Description.MetadataExchangeClientMode -> System.ServiceModel.Description.ServiceEndpointCollection
Public Shared Function Resolve (contracts As IEnumerable(Of ContractDescription), address As Uri, mode As MetadataExchangeClientMode) As ServiceEndpointCollection

Parametreler

contracts
IEnumerable<ContractDescription>

Meta verilerin indirilip çözümlenmesi için sözleşmeler.

address
Uri

Meta veri adresi.

mode
MetadataExchangeClientMode

Alma modu.

Döndürülenler

ServiceEndpointCollection

Belirtilen sözleşme için nesne koleksiyonu ServiceEndpoint .

Özel durumlar

Adres veya sözleşme koleksiyonu şeklindedir null.

contracts boş, en az bir üyesi contracts null veya contracts aynı ad ve ad alanına sahip birden fazla sözleşme içeriyor.

Açıklamalar

üzerindeki varsayılan ayarlar System.ServiceModel.Description.MetadataExchangeClient meta verileri almak için kullanılır.

Meta verileri indirmek ancak bilgileri nesnelere çözümlememek ServiceEndpoint için öğesini doğrudan kullanın System.ServiceModel.Description.MetadataExchangeClient .

Not

Hiçbir uç nokta içeri aktarılmadıysa veya sözleşmeyle eşleşen bir uç nokta yoksa boş bir koleksiyon döndürülür. Boş bir koleksiyon döndürülürse bir uyarı izlemesi yazılır.

Şunlara uygulanır

Resolve(Type, Uri, MetadataExchangeClientMode)

Belirtilen adres ve aktarım modunu kullanarak belirtilen sözleşmenin nesnelerine ServiceEndpoint bir meta veri adresini çözümler.

public:
 static System::ServiceModel::Description::ServiceEndpointCollection ^ Resolve(Type ^ contract, Uri ^ address, System::ServiceModel::Description::MetadataExchangeClientMode mode);
public static System.ServiceModel.Description.ServiceEndpointCollection Resolve (Type contract, Uri address, System.ServiceModel.Description.MetadataExchangeClientMode mode);
static member Resolve : Type * Uri * System.ServiceModel.Description.MetadataExchangeClientMode -> System.ServiceModel.Description.ServiceEndpointCollection
Public Shared Function Resolve (contract As Type, address As Uri, mode As MetadataExchangeClientMode) As ServiceEndpointCollection

Parametreler

contract
Type

Meta verilerin indirilip çözümlenmesi için sözleşme.

address
Uri

Meta veri adresi.

mode
MetadataExchangeClientMode

Alma modu.

Döndürülenler

ServiceEndpointCollection

Belirtilen sözleşme için nesne koleksiyonu ServiceEndpoint .

Özel durumlar

Adres veya sözleşme şeklindedir null.

Örnekler

Aşağıdaki kod örneği, WS-Transfer yerine HTTP GET isteği kullanan bir nesne koleksiyonu ServiceEndpoint olarak meta verileri indirmek ve döndürmek için kullanımını MetadataResolver gösterir.

// Get the endpoints for such a service using Http/Get request
endpoints = MetadataResolver.Resolve(typeof(SampleServiceClient), httpGetMetaAddress.Uri, MetadataExchangeClientMode.HttpGet);
Client.WriteParameters(endpoints);
ISampleService serviceChannel;
Console.WriteLine(
  "\r\nTrying all endpoints from HTTP/Get and with direct service channels...");

foreach (ServiceEndpoint point in endpoints)
{
    if (point != null)
    {
        ChannelFactory<ISampleService> factory = new ChannelFactory<ISampleService>(point.Binding);
        factory.Endpoint.Address = point.Address;
        serviceChannel = factory.CreateChannel();
        Console.WriteLine("Client used the " + point.Address.ToString() + " address.");
        Console.WriteLine(
          serviceChannel.SampleMethod(
            "Client used the " + point.Address.ToString() + " address."
          )
        );
        factory.Close();
    }
}

Açıklamalar

Resolve Bir sözleşme, adres ve kullanılacak indirme mekanizmasını belirtmek için yöntemini kullanın.

üzerindeki varsayılan ayarlar System.ServiceModel.Description.MetadataExchangeClient meta verileri almak için kullanılır.

Meta verileri indirmek ancak bilgileri nesnelere çözümlememek ServiceEndpoint için öğesini doğrudan kullanın System.ServiceModel.Description.MetadataExchangeClient .

Not

Hiçbir uç nokta içeri aktarılmadıysa veya sözleşmeyle eşleşen bir uç nokta yoksa boş bir koleksiyon döndürülür. Boş bir koleksiyon döndürülürse bir uyarı izlemesi yazılır.

Şunlara uygulanır

Resolve(IEnumerable<ContractDescription>, Uri, MetadataExchangeClientMode, MetadataExchangeClient)

Belirtilen adresi, aktarım modunu ve aktarım istemcisini ServiceEndpoint kullanarak belirtilen sözleşmelerin nesnelerine bir meta veri adresini çözümler.

public:
 static System::ServiceModel::Description::ServiceEndpointCollection ^ Resolve(System::Collections::Generic::IEnumerable<System::ServiceModel::Description::ContractDescription ^> ^ contracts, Uri ^ address, System::ServiceModel::Description::MetadataExchangeClientMode mode, System::ServiceModel::Description::MetadataExchangeClient ^ client);
public static System.ServiceModel.Description.ServiceEndpointCollection Resolve (System.Collections.Generic.IEnumerable<System.ServiceModel.Description.ContractDescription> contracts, Uri address, System.ServiceModel.Description.MetadataExchangeClientMode mode, System.ServiceModel.Description.MetadataExchangeClient client);
static member Resolve : seq<System.ServiceModel.Description.ContractDescription> * Uri * System.ServiceModel.Description.MetadataExchangeClientMode * System.ServiceModel.Description.MetadataExchangeClient -> System.ServiceModel.Description.ServiceEndpointCollection
Public Shared Function Resolve (contracts As IEnumerable(Of ContractDescription), address As Uri, mode As MetadataExchangeClientMode, client As MetadataExchangeClient) As ServiceEndpointCollection

Parametreler

contracts
IEnumerable<ContractDescription>

Meta verilerin indirilip çözümlenmesi için sözleşmeler.

address
Uri

Meta veri adresi.

mode
MetadataExchangeClientMode

Alma modu.

client
MetadataExchangeClient

Meta MetadataExchangeClient verileri almak için kullanılır.

Döndürülenler

ServiceEndpointCollection

Belirtilen sözleşme için nesne koleksiyonu ServiceEndpoint .

Özel durumlar

Adres, sözleşme koleksiyonu veya istemci şeklindedir null.

contracts boş, en az bir üyesi contracts null veya contracts aynı ad ve ad alanına sahip birden fazla sözleşme içeriyor.

Açıklamalar

Meta verileri indirmek ancak bilgileri nesnelere çözümlememek ServiceEndpoint için öğesini doğrudan kullanın System.ServiceModel.Description.MetadataExchangeClient .

Not

Hiçbir uç nokta içeri aktarılmadıysa veya sözleşmeyle eşleşen bir uç nokta yoksa boş bir koleksiyon döndürülür. Boş bir koleksiyon döndürülürse bir uyarı izlemesi yazılır.

Şunlara uygulanır