En términos de inconvenientes, la principal desventaja de la serialización es la sobrecarga de rendimiento (tanto la CPU como el disco) y los posibles problemas de latencia cuando se envía a través del cable. Puede haber pequeñas preocupaciones con respecto a la seguridad porque, en general, la serialización XML es insegura ya que solo funciona en propiedades y clases públicas, lo que le obliga en algunos casos a propiedades expuestas que de otro modo no podría tener. Por supuesto, si la seguridad es realmente una preocupación, probablemente no almacenaría datos demasiado confidenciales en sesión.
Si está utilizando Silverlight, un posible inconveniente es que Silverlight no admite el atributo [Serializable], por lo que las clases que se decoren con él no se podrán utilizar para sus ensamblajes de Silverlight.
Dicho esto, para la administración de la sesión, los objetos pequeños almacenados en la base de datos ASPState normalmente funcionan bien sin ninguna diferencia notable en la sesión de memoria. En el extremo opuesto del espectro, he tenido objetos grandes con listas de otros objetos como propiedades, etc., y si son lo suficientemente grandes, el rendimiento alcanzado puede ser notable a veces.
serialización xml no es un problema aquí ... no se utiliza en este contexto, y no tiene nada que ver con '[Serializable]' –