una tipo referencia nombres nombre falta existe espacio ensamblado encontró encontro directiva c# .net assemblies

c# - referencia - el nombre del tipo o del espacio de nombres xamarin no se encontro



¿Cómo hacer referencia a un espacio de nombre de un ensamblaje específico? (2)

Pues aqui esta mi problema.

  • Mi proyecto (de prueba) hace referencia tanto a Castle Windsor como a Rhino Mocks.
  • Estoy creando una clase que implementa Castle.Core.Interceptor.IInterceptor del ensamblado Castle.Core.dll
  • En la construcción de Rhino Mocks, Ayende utilizó Castle.Core.Interceptor e incluye el espacio de nombres completo dentro de Rhino.Mocks.dll

Entonces cuando intento construir, obtengo el error

El tipo ''Castle.Core.Interceptor.IInterceptor'' existe en ''c: ... / Libraries / Rhino.Mocks.dll'' y ''c: ... / Libraries / Castle.Core.dll''

¿Cómo especifico que deseo utilizar la instancia de IInterceptor desde Castle.Core.dll en lugar de la que se incluye en Rhino Mocks?


Puede usar un extern alias para alias uno de los ensamblajes para evitar la ambigüedad.


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

  • Seleccione uno de los dos conjuntos debajo de las referencias del proyecto (en mi caso seleccioné Castle.Core). Pulse F4 para mostrar propiedades e ingresar alias CastleCore
  • En la parte superior del archivo cs problemático, coloque extern alias CastleCore;
  • CastleCore::Castle.Core.Interceptors.IInterceptor referencia a su clase con CastleCore::Castle.Core.Interceptors.IInterceptor . O en mi caso simplemente lo hice:

usando cci = CastleCore :: Castle.Core.Interceptors;

y ahora puede hacer referencia

cci.IInterceptor