← Torna al blog

Tecnica

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 !

Commenti

    Se ti va di parlarne, scrivimi.

    info@bitnrg.com

    ← Tutti gli articoli