La classe AjaxControlToolkit.Sanitizer è sparita?
Questo articolo è stato scritto in inglese e tradotto in italiano. Leggi l'originale
Allora, hai appena aggiornato AjaxControlToolkit e hai scoperto che non hai più la classe AjaxControlToolkit.Sanitizer, giusto? E in tutto il mondo non c'è neanche UN post che ne parli, giusto? Ok, sei nel posto giusto.
Questo è quello che succede quando Microsoft comincia a comportarsi con la (il)logica *nux, cioè "fcb": fuck backward compatibility (al diavolo la retrocompatibilità) !!! Hai scritto il tuo codice più di 2 o 3 anni fa? Sei vecchio! Dovresti essere bandito! Niente dovrebbe durare così tanto !!!
La soluzione è...
-
Torna su "Gestisci pacchetti NuGet" per la soluzione
-
Vai su "Sfoglia" e cerca "sanitizer", seleziona il nuovo "AjaxControlToolkit.HtmlEditor.Sanitizer", scegli esattamente la stessa versione di "AjaxControlToolkit" che dovresti avere già installato o aggiornato (se non ce l'hai, installa anche quello).
-
Sostituisci il vecchio riferimento, per esempio da:
AjaxControlToolkit.Sanitizer.HtmlAgilityPackSanitizerProvider mySanitizer = new AjaxControlToolkit.Sanitizer.HtmlAgilityPackSanitizerProvider();
alla nuova, cambiata/rinominata, maledetta classe:
AjaxControlToolkit.HtmlEditor.Sanitizer.DefaultHtmlSanitizer mySanitizer = new AjaxControlToolkit.HtmlEditor.Sanitizer.DefaultHtmlSanitizer();
Adesso scoprirai, ovviamente, che nessuno si è preso la briga di creare un overload del vecchio metodo GetSafeHtmlFragment, sempre a causa dell'FCB (vedi sopra)… quindi questa riga darà un errore:
return mySanitizer.GetSafeHtmlFragment(strMyHTMLText, myTagsWhiteList, myAttributeWhiteList);
Il motivo è: non è più possibile specificare una AttributeWhiteList !!!!!!!!! Quindi dovrai accontentarti della sola TagsWhitelist.
Sì, hai capito bene. Non è affar loro. Puoi andare a quel paese se non sei d'accordo. Chi se ne frega.
Quindi devi adeguarti al nuovo formato:
return mySanitizer.GetSafeHtmlFragment(strMyHTMLText, myTagsWhiteList);
e buttare via la tua vecchia lista di attributi.
Poi controlla il tuo web.config come suggerito qui:
https://github.com/DevExpress/AjaxControlToolkit/wiki/Upgrading-from-v7.x-and-below
Alla prossima !
Se ti va di parlarne, scrivimi.
info@bitnrg.com
Commenti