¿Ha desaparecido la clase AjaxControlToolkit.Sanitizer?
Este artículo fue escrito en inglés y traducido al español. Leer el original
Así que acabas de actualizar AjaxControlToolkit y has descubierto que ya no tienes la clase AjaxControlToolkit.Sanitizer, ¿verdad? Y en todo el mundo no hay ni UN post que hable de ello, ¿verdad? Vale, has venido al lugar correcto.
Esto es lo que pasa cuando Microsoft empieza a comportarse con la (i)lógica *nux, es decir, "fcb": fuck backward compatibility (a la porra la retrocompatibilidad) !!! ¿Escribiste tu código hace más de 2 o 3 años? ¡Eres viejo! ¡Deberían expulsarte! ¡Nada debería durar tanto !!!
La solución es...
-
Vuelve a "Administrar paquetes NuGet" de la solución
-
Ve a "Examinar" y busca "sanitizer", selecciona el nuevo "AjaxControlToolkit.HtmlEditor.Sanitizer", elige exactamente la misma versión de "AjaxControlToolkit" que ya deberías tener instalada o actualizada (si no la tienes, instálala también).
-
Sustituye tu antigua referencia, por ejemplo de:
AjaxControlToolkit.Sanitizer.HtmlAgilityPackSanitizerProvider mySanitizer = new AjaxControlToolkit.Sanitizer.HtmlAgilityPackSanitizerProvider();
a la nueva, cambiada/renombrada, maldita clase:
AjaxControlToolkit.HtmlEditor.Sanitizer.DefaultHtmlSanitizer mySanitizer = new AjaxControlToolkit.HtmlEditor.Sanitizer.DefaultHtmlSanitizer();
Ahora descubrirás, obviamente, que nadie se ha molestado en crear una sobrecarga del antiguo método GetSafeHtmlFragment, siempre por culpa del FCB (ver arriba)… así que esta línea dará un error:
return mySanitizer.GetSafeHtmlFragment(strMyHTMLText, myTagsWhiteList, myAttributeWhiteList);
El motivo es: ¡¡¡¡¡¡¡¡¡ya no se permite especificar una AttributeWhiteList !!!!!!!!! Así que tendrás que conformarte solo con la TagsWhitelist.
Sí, lo has entendido. No es asunto suyo. Puedes irte a freír espárragos si no estás de acuerdo. Qué más da.
Así que tienes que adaptarte al nuevo formato:
return mySanitizer.GetSafeHtmlFragment(strMyHTMLText, myTagsWhiteList);
y tirar a la basura tu vieja lista de atributos.
Después revisa tu web.config como se sugiere aquí:
https://github.com/DevExpress/AjaxControlToolkit/wiki/Upgrading-from-v7.x-and-below
¡Saludos !
Si te apetece hablar de ello, escríbeme.
info@bitnrg.com
Comentarios