2011-01-26 16 views
12

Ho rinominato lo spazio dei nomi di una classe di riferimento e il compilatore WPF non vuole tenerlo in considerazione: mantiene il prefisso MyOldNameSpace in .g.cs file:Vecchio spazio dei nomi ancora nel file .g.cs quando si modifica lo spazio dei nomi di una classe di riferimento

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

Perché? Come risolvere questo? Cos'è questo oscuro file .g.cs?

risposta

6

Chiudere il file .g.cs. Puoi persino cancellarlo.

La g sta per generato, VS genera il collegamento tra il codice e Xaml in questa classe parziale.

Pulire la soluzione e ricostruire. Questo dovrebbe risolverlo.

18

Sembra che tu non abbia modificato il file MyClass.xaml. Ci dovrebbe essere qualcosa di simile su di esso

<MyClass x:Class="MyOldNameSpace.MyReferencedClass" 

ma dovrebbe essere "Il mio Nuovo NameSpace.MyReferencedClass"

+0

Questo. Refactoring non cambia nulla nei file .xaml. – Will

+0

Il refactoring cambia il mio xaml (VS2008 e VS2010) –

+0

xmlns: local = "clr-namespace: OldNamespace" avrà bisogno anche di correzione nel file XAML –

1

Forse un altro caso è che l'azione di costruzione della vostra XAML non è "pagina", ma le altre opzioni.

2

Non dimenticare di modificare il file generic.xaml troppo,

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

Nel mio caso la rimozione di cartella obj risolto l'errore.

2

Controllare anche xmlns: local in Application.xaml. Questo mi ha fatto andare per un po '...

Problemi correlati