Visor de registro de enlaces de ensamblados (Fuslogvw.exe)
Uno de los aspectos más difíciles del trabajo con recursos localizados es la depuración del proceso de carga de los mismos. Al utilizar ResourceManager, las solicitudes de recursos se entregan a Common Language Runtime, que es responsable de localizar, cargar y enlazar ese recurso. En el código fuente, una única llamada para cargar un recurso puede ejecutar varias solicitudes de enlace a Common Language Runtime.
La herramienta Visor de registro de enlaces de ensamblados ayuda a analizar el proceso de carga de los recursos. En realidad es el componente WinInet de Windows el que mantiene información detallada de los enlaces a recursos en función de las direcciones URL. Por desgracia, cuando WinInet devuelve estas entradas no lo hace necesariamente en orden cronológico.
De forma predeterminada, las llamadas de enlace no se registran. Para activar el registro, es necesario crear antes un valor DWORD en la clave HKLM\Software\Microsoft\Fusion del Registro de Windows. El primer nivel de registro muestra solamente los enlaces a recursos que no son correctos. Para habilitarlo, debe crear el valor DWORD LogResourceBinds y asignarle un valor distinto a 0, que es el predeterminado.
Para hacer que un enlace a un recurso sea incorrecto en la aplicación de ejemplo, basta con eliminar o cambiar el nombre del ensamblado satélite de recursos apropiado. Por ejemplo, si elimina los archivos \en-US\Graphic.resources.dll y \en\Graphic.resources.dll, y, a continuación, ejecuta el ejemplo Graphic, FusLogVW crea el registro que se muestra en la ilustración siguiente:
Estas dos entradas del registro indican que, primero, Common Language Runtime intentó localizar un recurso para la referencia cultural en-US. Como fue erróneo, intentó cargarlo para la referencia cultural en. Finalmente, como también resultó erróneo, lo cargó del ensamblado principal (que, como fue correcto, no se registró).
Sin embargo, muchos programadores desean ver toda la actividad de los enlaces. En ese caso, es necesario establecer el valor DWORD de ForceLog con un valor distinto de cero (0), que es el predeterminado. A partir de ese momento se registrarán las llamadas de enlace subsiguientes, sean correctas o no. La ilustración siguiente muestra un registro típico:
Al seleccionar uno de los enlaces a recursos (en este caso para Locale=en-US) y hacer clic en Ver registro, se abre una ventana del explorador y se crea el registro detallado que se muestra en la ilustración siguiente:
Esta entrada en particular del registro muestra que el recurso se cargó correctamente después de buscar primero en la caché de ensamblados global y, a continuación, en los subdirectorios de la aplicación. Para reducir el número de archivos que Common Language Runtime intenta cargar y mejorar el rendimiento, éste sólo intenta localizar los recursos en archivos que tienen la extensión .dll.