Ku-.NET Framework 4.8.1, ukuze uthole i-metadata ye-WCF ngendlela ye-HTTP GET, lungiselela isicelo se-metadata sokuqala, hhayi i-SOAP client yokugcina kuphela. I-hook yayo evikelwe GetWebRequest ingasebenzisa umzila ophathwa ngokwehlukile:

class RoutedMetadataClient : MetadataExchangeClient
{
    private readonly IWebProxy route;

    public RoutedMetadataClient(IWebProxy route)
    {
        this.route = route;
    }

    protected override HttpWebRequest GetWebRequest(
        Uri location, string dialect, string identifier)
    {
        HttpWebRequest request =
            base.GetWebRequest(location, dialect, identifier);
        request.Proxy = route;
        return request;
    }
}

Izinhlobo zivela ku-System.Net kanye ne-System.ServiceModel.Description. Yakha le client nge-WebProxy ehlosiwe futhi usebenzise imodi ye-HttpGet ku-URL ye-WSDL. Beka i-akhawunti ye-proxy kuleyo nto; ukuqinisekiswa kweseva ye-metadata kwehlukile.

Landela ukungeniswa uma i-WSDL yempande iphumelela kodwa ukuxazulula kuhluleka kamuva. Amanye ama-WSDL namaschema angasebenzisa abasingathi noma amaphrothokholi ahlukene.

Khetha isandiso esifanele kwenye imodi yokuthola. I-WS-MetadataExchange isebenzisa isiteshi, okuyihook yaso yokudala engu-GetChannelFactory; izilungiselelo zayo ze-binding neze-proxy azithathelwa indawo ngokujwayelekile yi-override ye-HttpWebRequest.

I-proxy yohlelo lokusebenza okuzenzakalelayo ingase yanele lapho zonke izingxenye zakudala ezibamba iqhaza kufanele ziyabelane. I-subclass yenzelwe ubunikazi obucacile be-metadata phakathi kwalo mkhakha we-API. Izingcingo ze-SOAP ezikhiqiziwe zisadinga ukulungiselelwa kwayo kwezokuthutha ngesikhathi sokusebenza. Ku-client ye-BasicHttpBinding, hlola i-ProxyAddress ne-UseDefaultWebProxy ndawonye.

Izihloko ezihlobene