¿Cómo hacer referencia a un espacio de nombres desde un ensamblado específico?


Así que aquí está mi problema.

  • Mi proyecto (de prueba) hace referencia tanto a Castle Windsor como a Rhino.
  • Estoy creando una clase que implementa Castle.Núcleo.Interceptor.IInterceptor del Castillo.Núcleo.dll assembly
  • En la construcción de Rhino se burla, Ayende utilizó el Castillo.Núcleo.Interceptor e incluye todo el maldito espacio de nombres dentro de Rhino.Burla.dll

Así que cuando intento construir, obtengo el error

El tipo Castle.Núcleo.Interceptor.IInterceptor" existe en ambos "c:...\ Libraries \ Rhino.Burla.dll' y "c:...\ Libraries \ Castle.Núcleo.dll '

¿Cómo especifico entonces que quiero usar la instancia IInterceptor desde el Castillo?Núcleo.dll en lugar de la que se incluye en Rhino Burlas?

Author: George Mauer, 2009-02-05

2 answers

Vamos a lanzar la respuesta específica aquí en caso de que alguien viene más tarde. Del artículo aquí .

  • Seleccione uno de los dos ensamblados en referencias de proyectos (en mi caso seleccioné Castle.Núcleo). Pulse F4 para abrir propiedades e introduzca alias CastleCore
  • En la parte superior del archivo cs problemático poner extern alias CastleCore;
  • Haga referencia a su clase con CastleCore::Castle.Core.Interceptors.IInterceptor. O en mi caso simplemente lo hice:

Usando cci = CastleCore::Castle.Núcleo.Interceptores;

Y puede ahora referencia

cci.IInterceptor
 43
Author: George Mauer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-05 18:23:11

Puede utilizar un extern alias al alias de uno de los ensamblados para evitar la ambigüedad.

 7
Author: Andrew Hare,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-05 18:02:30