2011-01-26 18 views
12

He cambiado el nombre del espacio de nombres de una clase referenciada y el compilador WPF no quiere tomarlo en cuenta: mantiene el prefijo MyOldNameSpace en .g.cs archivo:Viejo espacio de nombres todavía en el archivo .g.cs al cambiar el espacio de nombres de una clase referenciada

[System.CodeDom.Compiler.GeneratedCodeAttribute 
    ("PresentationBuildTasks", "4.0.0.0")] 
public partial class MyClass: 
    MyOldNameSpace.MyReferencedClass, 
    System.Windows.Markup.IComponentConnector { 

¿Por qué? Cómo arreglar esto ? ¿Qué es este oscuro archivo .g.cs?

Respuesta

6

Cierre el archivo .g.cs. Incluso puedes eliminarlo.

El g significa generado, VS genera el cableado entre el código y el Xaml en esta clase parcial.

Limpiar la solución y reconstruir. Eso debería arreglarlo.

18

Parece que no ha cambiado su archivo MyClass.xaml. Debe haber algo como esto en la parte superior de la misma

<MyClass x:Class="MyOldNameSpace.MyReferencedClass" 

pero debe ser "mi Nueva NameSpace.MyReferencedClass"

+0

Esto. La refacturación no cambia nada en los archivos .xaml. – Will

+0

La refabricación cambia mi xaml (VS2008 y VS2010) –

+0

xmlns: local = "clr-namespace: OldNamespace" también necesitará corrección en el archivo XAML –

1

Tal vez otro caso es que la acción compilación de su xaml no es "Página", pero las otras opciones.

2

No se olvide de cambiar el archivo Generic.xaml también,

<ResourceDictionary 
        xmlns:local="clr-namespace:MyOldNameSpace"> 
</ResourceDictionary> 
2

En mi caso, eliminando la carpeta obj fija el error.

2

También verifique xmlns: local en Application.xaml. Esto me hizo seguir por un tiempo ...

Cuestiones relacionadas