WCF ku-.NET Framework: izilungiselelo ze-proxy ye-metadata ye-HTTP GET
Lungiselela indlela yakudala yokuthola i-metadata ye-WCF, kuhlanganise nokungeniswa kwe-HTTP, ngokwehlukile ku-SOAP service client yokugcina.
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.