0
由於一些證書問題,我不得不寫ServerCertificateValidationCallback逆轉
ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, errors) => true;
這是一個更好的方式,來電後逆轉已經取得,或這是不必要的?
var temp = ServicePointManager.ServerCertificateValidationCallback;
ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, errors) => true;
var r = func(obj);
ServicePointManager.ServerCertificateValidationCallback = temp;
我注意到,如果這裏的回調是一個*事件*然後代碼默認生成事件添加器將執行適當的低鎖定算法以確保沒有丟失的添加。當然,如果這裏的回調只是一個委託 - 看起來像 - 那麼是的,你自己負責編寫代碼。 –
@Eric:它被記錄爲代表。然而,即使是事件,運算符'+ ='的反轉也是' - =',而不是恢復一些舊的*和可能過時的*狀態。這會使該方案與運營商本身一樣安全(完全降低「臨時」)。當然,' - ='是有問題的,因爲它需要'物化'(捕獲)'+ ='的lambda以賦予其身份,另一個複雜因素來自'var'不能與C#中的lambdas一起使用... – DarthGizka