Buenas,
ayer comenté sobre la disponibilidad de Unity para .Net 4.5 y además hice un comenario sobre Agent Mulder. Agent Mulder es una extensión impresionante para ReSharper que nos permite navegar hacia las implementaciones y declaraciones de un tipo específico cuando estamos trabajando con algún contenedor de inyección de dependencias.
Como explicarlo en palabras no se me da bien hoy, mejor vamos a un ejemplo. Supongamos que estamos trabajando con Unity y tenemos una aplicación de consola con el siguiente ejemplo:
1: using System;
2: using System.Diagnostics;
3: using Microsoft.Practices.Unity;
4:
5: namespace ConsoleApplication1
6: {
7: class Program
8: {
9: static void Main(string[] args)
10: {
11: var container = new UnityContainer();
12: container.RegisterType<ILogger, LogDebug>();
13: var log = container.Resolve<ILogger>();
14: log.Log("sample data");
15: Console.ReadLine();
16: }
17: }
18: internal interface ILogger
19: {
20: void Log(string data);
21: }
22: class LogTrace: ILogger
23: {
24: public void Log(string data)
25: {
26: Trace.WriteLine(data);
27: }
28: }
29: class LogDebug : ILogger
30: {
31: public void Log(string data)
32: {
33: Debug.WriteLine(data);
34: }
35: }
36: }
En el IDE de Visual Studio, intentar ver donde se ha utilizado la clase LogDebug es un poco trabajo artesanal, ya que al no tener referencias directas, pues se complica un poco saber donde se está utilizando. Si vemos la ayuda online que tenemos en el editor de código pues veremos algo similar a lo siguiente
Ahora bien, si descargamos e instalamos Agent Mulder, este plugin de ReSharper nos mostrará que la clase LogDebug() se está registrando y utilizando con Unity. Podremos acceder a la línea de registro de la misma y luego inclusive, acceder a las referencias dinámicas de ReSharper para ver donde se implementa y utiliza la funcion Log().
En pocas palabras, Agent Mulder nos ayuda a navegar entre las referencias que realizamos con algún inyector de dependencias, como Unity, CastleWindsor, etc. El ejemplo de la página oficial del producto está montado sobre CastleWindsor.
Descarga: http://hmemcpy.github.com/AgentMulder/
Saludos @ La Finca
El Bruno

Leave a comment