Serialización PostSharp

La persistencia de aspectos entre el tiempo de compilación y el tiempo de ejecución se logra serializando aspectos...

Desde Documentación de PostSharp.

Para mi entendimiento, esto solo es importante si uso el CompileTimeInitialize método para establecer ciertos valores en tiempo de compilación. Yo uso esto muy raramente. Creo que solo crear instancias de aspectos sería mucho más rápido que deserializarlos, ¿no es así? Entonces, ¿PostSharp no sería más rápido si tuviera la opción de omitir el proceso de serialización?

preguntado el 22 de mayo de 12 a las 14:05

1 Respuestas

respondido 06 mar '13, 03:03

Gracias por tu rápida respuesta :) Tienes razón. Voy a corregir esto ahora mismo. ¿Cuáles son los casos de uso que tenía en mente al desarrollar aspectos serializables? usé el CompileTimeInitialize una sola vez para un registrador. ¿Es la serialización más rápida/mejor que el acceso en tiempo de ejecución en un objeto de reflexión? Podría intentarlo por mí mismo, pero tal vez tengas la respuesta a mano. - Matías

La configuración predeterminada está optimizada para la facilidad de uso, no para el rendimiento. CompileTimeInitialize suele ser útil porque es más barato calcular algo en el momento de la compilación y deserializarlo que calcularlo en el tiempo de ejecución. - Gael Fraiteur

Gracias Gael. Leí varias historias de clientes sobre PostSharp, pero nunca leí sobre un aspecto en el que se necesitaba la inicialización del tiempo de compilación. ¿Puedes explicar algún caso de uso? - Matías

Por ejemplo, un aspecto de registro puede necesitar imprimir una cadena compuesta por el nombre del tipo, el nombre del método y el tipo de sus argumentos. Dado que todas estas piezas de información se conocen en el momento de la compilación, es mejor calcular esta cadena en CompileTimeInitialize y almacenarla en un campo, que se serializará. - Gael Fraiteur

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.