tag non esiste nello spazio dei nomi XML

Questo errore sembra essere pubblicato ovunque ma ognuno sembra avere la propria soluzione, nessuna delle quali ha risolto il mio problema.

Ricevo un errore per un dizionario delle risorse che sto facendo (e successivamente unendo) che il tag "ModelBindings" non esiste nello spazio dei nomi XML "clr-namespace: Company.Project.Module.Folder; assembly = Company.Project.Module '

L'assembly a cui faccio riferimento è personalizzato e contenuto nella soluzione. Non solo, ma abbiamo esaminato la dll inserita nel cestino per il progetto in cui risiede il dizionario delle risorse e dopo l'ispezione contiene la classe a cui voglio fare riferimento. Quindi so che 1. la dll è nel posto giusto a cui accedere ed è nei riferimenti. 2. La dll contiene i dati che desidero.

Ecco alcuni bit di codice per il Dizionario delle risorse

L'elenco dello spazio dei nomi

xmlns:modulemodel="clr-namespace:Company.Project.Module.Folder;assembly=Company.Project.Module"

Creazione della risorsa a cui fare riferimento

<modulemodel:ModelBindings x:Key="ModuleModelBindings"/>

Come gli errori di altre persone, l'intellisense dice che è kosher. ANCHE l'elenco xmlns è stato creato con il completamento automatico di intellisense e riscritto manualmente. Nessuno dei due ha funzionato.

Ho anche provato a spostare tutto in app.xaml e mi dava ancora lo stesso errore.

Se rimuovo il corpo del file ResourceDictionary il codice si compila bene, ma tutte le associazioni sono interrotte.

Infine, tutte le definizioni delle risorse venivano definite all'interno dei file xaml dove erano usate, che funzionavano bene. È solo dopo aver provato a crearli da un progetto diverso che non ha funzionato. L'ho modificato per correggere un errore e tornare al vecchio metodo potrebbe essere potenzialmente problematico.

Modifica: Ecco il meglio che posso fare per mostrare il dizionario delle risorse che sto utilizzando

<SharedResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:modulemodel="clr-namespace:Company.Project.Module.Folder;assembly=Company.Project.Module"
                    >
    <modulemodel:ModelBindings x:Key="ModuleModelBindings"/>

</SharedResourceDictionary>

se lo sostituisco SharedResourceDictionary con ResourceDictionary si verifica lo stesso errore.

app.xaml e SharedResourceDictionary sopra sono comparativamente nello spazio dei nomi Company.Project.Main e contiene riferimenti sia a dove SharedResourceDictionary è definito sia ai diversi progetti di moduli che ho inserito nel codice sopra

Soluzione

Sembra che sia stato principalmente un errore dell'utente. Ma questo potrebbe accadere ad altri. Quando ho copiato la definizione xmlns: moduleviewmodel dal suo file originale, ho dovuto aggiungere l'assembly = porzione da solo. Come ho detto, l'ho fatto entrambi da solo e ho usato il completamento automatico come segue digitando 'xmlns: moduleviewmodel ='. Poco prima di trovare l'errore, abbiamo provato di nuovo il completamento automatico perché abbiamo scoperto che uno dei 7 spazi dei nomi non generava l'errore. Fu allora che notai che c'era una lettera nel percorso di assemblaggio che non era maiuscola che dovrebbe essere. La cosa strana è che il completamento automatico inserisce effettivamente questo errore da solo. Mentre stavamo compilando ho notato la lettera errata. La cosa più strana è che dopo aver corretto tutti i percorsi manualmente abbiamo provato di nuovo il completamento automatico e lo ha scritto correttamente.

Non ho idea della causa del completamento automatico errato ma con la lettera fissa si compila bene.

Ora Mi chiedo solo se qualcuno crederà che il completamento automatico stia cambiando su di me!

18
задан StephenT 22 July 2011 в 19:24
поделиться