Aufgrund einiger Zertifikat Probleme hatte ichServerCertificateValidationCallback Umkehrung
ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, errors) => true;
Ist dies eine bessere Art und Weise zu schreiben, es nach dem Aufruf rückgängig gemacht worden ist, oder ist dies nicht notwendig?
var temp = ServicePointManager.ServerCertificateValidationCallback;
ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, errors) => true;
var r = func(obj);
ServicePointManager.ServerCertificateValidationCallback = temp;
Ich stelle fest, dass, wenn der Callback hier ein * event * ist, der Code standardmäßig für generiert wird Der Ereignisaddierer führt den entsprechenden Low-Lock-Algorithmus aus, um sicherzustellen, dass keine Add-Ins verloren gehen. Natürlich, wenn der Rückruf hier nur ein Delegierter ist - wie es scheint - dann sind Sie dafür verantwortlich, diesen Code selbst zu schreiben. –
@Eric: Es ist dokumentiert als ein Delegierter. Aber selbst bei Ereignissen ist die Umkehrung des Operators '+ =' '' = '', wodurch ein alter - * und möglicherweise ein veralteter * - Zustand nicht wiederhergestellt wird; Dies würde das System so sicher machen, wie es die Operatoren selbst sind ("temp" ganz abfallen lassen). Natürlich ist '- =' problematisch, weil es das 'Lambda' materialisieren (fangen) muss, damit das '+ =' ihm Identität gibt, und eine andere Komplikation kommt von der Tatsache, dass 'var' nicht mit lambdas in C# funktioniert. ... – DarthGizka