WPF: el nombre no existe en el espacio de nombres

Estoy construyendo una aplicación C # / WPF usando VS2013, y tengo la siguiente definición de clase (en el mismo ensamblaje de la aplicación en ejecución):

namespace MyNamespace { public class MyKey { public MyKey() { } public string name = ""; } } 

En MainWindow.xaml tengo:

     ... 

VS sigue informando eso

El nombre “MyKey” no existe en el espacio de nombres “clr-namespace: MyNamespace”

¿Algunas ideas?

PD Probé las siguientes soluciones (a partir de preguntas ya publicadas en stackoverflow) pero ninguna de ellas funcionó:

  1. Mover la clase a un espacio de nombres diferente, y luego usar el nuevo espacio de nombres en la referencia xaml
  2. Reiniciar VS y limpiar / reconstruir la solución
  3. limpiando la solución, luego renombrando su carpeta y luego construyendo la solución nuevamente
  4. cambiando la referencia a:

xmlns: local = “clr-namespace: MyNamespace; assembly =”

Editar: información adicional: la architecture de destino: X64, marco de destino: .Net 4.5

Una solución común a este error conocido de VS que no ha especificado que haya intentado es cambiar la plataforma de destino de comstackción.

  1. Si su plataforma de destino de comstackción actual es x64, cambie a x86. Si actualmente es x86, cambie a x64.

  2. Solución Clean and Build para la nueva plataforma objective.

  3. Cambie de nuevo a la plataforma de destino deseada y vuelva a generar.

Tuve el mismo problema en la edición expresa VS2012. Resuelto el problema usando el comando

“WDExpress / ResetSettings” en el símbolo del sistema vs2012.

https://stackoverflow.com/a/33706647/4855197

Una posible solución es eliminar todos los archivos .dll de la carpeta Debug and Release .

Porque a veces, cuando se refiere al proyecto, se refiere a los dlls preconstruidos, incluso si ejecuta su proyecto en modo de depuración.

Elimine todos los archivos de la carpeta de depuración y liberación y compile ese proyecto nuevamente, ahora agregue la referencia de este proyecto al lugar que desee. Funcionó perfectamente bien en mi extremo.

Tuve un problema similar. Lo que lo solucionó fue cambiar las propiedades de comstackción del proyecto, que se agregó como referencia. Resultó que el “objective de la plataforma” había sido cambiado en el pasado. Configurarlo en “Cualquier CPU” y reconstruirlo resolvió el error.

Ejecución VS Enterprise 2017 versión 15.6.2 Segmentación .Net 4.6.1

Tuve el mismo problema con una página UserControl xaml en la que intentaba hacer referencia a ValueConverter en sus recursos. El espacio de nombres era correcto, el intellisense incluso lo incluiría, pero el diseñador no cargaría la página y el código no se comstackría. Incluso intenté mover uno de los convertidores de valor del archivo y el espacio de nombres en cuestión y moverlo al código subyacente. VS estaba tan asustado que afirmaba que el método InitializeComponent () en el constructor código subyacente no existía.

Lo que creo que finalmente lo resolvió fue cuando me di cuenta de que a la clase ValueConverter le faltaba el atributo principal como este:

[ValueConversion (typeof (cadena), typeof (decimal))]

Una vez que agregué esa línea, hice una solución rápida y la compilé y luego la compilé y trabajé. Entonces, de repente, el xaml pudo ver todas las reglas de validación y los convertidores de valores en ese archivo. Y ahora me he dado cuenta de que los otros 3 convertidores de valor en ese archivo tampoco tenían un atributo ValueConversion y, sin embargo, el código aún se comstack ahora. Tal vez algo sobre los tipos entrantes en ese primer convertidor fue vago.

Todavía es un misterio. Sé que debería descartar mi cambio y ver si el error es reproducible, pero después de luchar contra ese código durante la mayor parte del día, estoy cansado de verlo. Era un viejo proyecto de Prism que no se estaba ejecutando y lo actualicé a las bibliotecas de Prism 7.0. También intenté restablecer todas las configuraciones del procesador a ‘Cualquier CPU’. Se quejaba de que el progtwigdor estaba obsoleto, pero lo ignoré. Reinicié y limpié todo varias veces. Incluso había eliminado la carpeta .vs. Probablemente debería haber intentado borrar las carpetas obj y bin antes, eso es lo único que no había hecho.

Este no era mi proyecto Normalmente siempre construyo convertidores de valor uno a un archivo con el mismo nombre. No creo que eso importe, pero todo el error fue un poco loco en primer lugar.