2011-03-16 42 views
18

Eliminé un proyecto en mi solución y luego lo volví a agregar. Desde que lo leí ... Recibo un error de ambiguous reference que no puedo eliminar. ver la implementación de la clase (que está recibiendo el error) lo veo hace referencia a ella en dos ocasiones:referencia ambigua

> ClassName (myclass.Class) myclass.Class 
> ClassName (myclass.Class) myclass.Class, Version=1.0.0.0 

el espacio de nombres solamente se visualiza una vez, pero este problema sólo existe en 1 vista parcial.

EDIT:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyClass.Class.MyViewModel>" %> 

MyViewModel está dando el error ambiguo, si puedo ver todas las clases disponibles se muestra duplicados como:

MyClass.Class.MyViewModel 
MyClass.Class.MyViewModel 
MyClass.Class.MyOtherViewModel 
MyClass.Class.MyOtherViewModel 

pero cuando abro otra vista parcial en el mismo proyecto , está bien. Es solo el 1 parcial que parece conservar la referencia duplicada.

¿Alguna idea de cómo puedo resolver esto?

+2

título ambiguo –

Respuesta

43

¿Has probado hacer clic derecho en la solución y hacer Clean Solution?

+5

que limpié varias veces ... pero necesité una limpieza manual para ordenarla.gracias a todos – nologo

+0

Tu también tuve que hacer un manual para resolver el problema, pero gracias por eso. – EllisChadwick

+1

Grandes instrucciones de limpieza manual de esta respuesta: http://stackoverflow.com/a/4744901/85662. – WhatIsHeDoing

-2

Obtiene este error porque tiene dos clases con el mismo nombre y el mismo espacio de nombres. Debe cambiar el espacio de nombre de una de las clases.

+0

no .. la clase solo se nombra una vez. vea editar – nologo

+0

intente eliminar la referencia y asegúrese de hacer referencia por proyecto. –

+0

hecho. es solo la vista parcial 1 que conserva la referencia extraña. reinicié mi máquina/solucion limpiada/eliminé la carpeta temp asp.net – nologo

4

Parece que su proyecto tiene dos referencias diferentes al mismo conjunto.

Deshágase de uno de ellos.

1

Estaba recibiendo esto como un mensaje de error erróneo, y mi proyecto todavía se creó y funcionó bien durante meses. Fue porque alguien había puesto una clase en un espacio de nombres con mayúsculas diferentes para todas las demás instancias de ese espacio de nombres, por lo que efectivamente eran dos espacios de nombres diferentes. Nuestro código era técnicamente correcto, pero la directiva ASPX <%@ Register %> se quejó de que era ambiguo porque había dos símbolos diferentes con el "mismo" nombre; MyNamespace y Mynamespace.

Compruebe su capitalización.

1

¿Ha intentado apagar y volver a encender (Visual Studio)? Funcionó para mí ...

0

Probablemente su proyecto tenía un enlace a un ensamblaje en su solución y también su clase de proyecto tiene una instrucción de uso para el espacio de nombres en el ensamblaje al que se hace referencia.

Quite el enlace a un conjunto entre proyectos si pertenecen a una solución.

0

Esto también puede suceder si tiene referencias de dos versiones diferentes. Si hace referencia a un ensamblado en su proyecto problemático y también hace referencia a otro proyecto que tiene la misma referencia pero una versión diferente, es ambiguo qué referencia utilizar.

Cuestiones relacionadas