← Volver al blog

Tecnología

¿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 !

Comentarios

    Si te apetece hablar de ello, escríbeme.

    info@bitnrg.com

    ← Todos los artículos