2009-06-12 29 views
5

Uso il prisma come esempio; questa è la mia prima volta che gioco con WPF. Ho scritto due moduli; orderModule e orderDetailModule. Sono stato in grado di eseguire la mia app e farli popolare su uno schermo, ora sto cercando di caricare un solo modulo e caricare l'altro con un clic del mouse. Stavo caricando i miei moduli in codice prima, poi ho notato che prism sta usando xml quindi sto provando a fare anche questo. Per qualche motivo non li possa trovare, la piena errore che ottengo è:Impossibile recuperare il tipo di modulo Errore

Microsoft.Practices.Composite.Modularity.ModuleInitializeException è stata gestita Messaggio = "Impossibile recuperare il tipo di modulo NetworkOrderManagement.WPF_Modules.Order, OrderModule da gli assembly caricati. Potrebbe essere necessario specificare un nome di tipo più completo. "

Questa è la sezione moduli nel mio app.config:

<modules> 
<module assemblyFile="WPFOrderModule.dll" 
     moduleType="NetworkOrderManagement.WPF_Modules.Order, OrderModule" 
     moduleName="OrderModule"/> 
<module assemblyFile="WPFOrderDetailModule.dll" 
     moduleType="NetworkOrderManagement.WPF_Modules.OrderDetail, OrderDetailModule" 
     moduleName="OrderDetailModule" 
     startupLoaded="false"/> 

Da link text

All'interno della sezione di configurazione dei moduli, definire il modulo. Per fare ciò, aggiungi un elemento XML del modulo. Questo elemento ha i seguenti attributi:

assemblyFile. Questo attributo specifica la posizione dell'assembly del modulo. Questo attributo è obbligatorio.

moduleType. Questo attributo specifica il tipo all'interno dell'assembly del modulo che implementa l'interfaccia di IModule. Questo attributo è obbligatorio.

moduleName. Questo attributo specifica il nome del modulo. Questo attributo è obbligatorio.

startupLoaded. Questo attributo specifica se il modulo è caricato all'avvio. Se il suo valore è true (questo è il valore predefinito), il modulo dovrebbe essere caricato all'avvio. Se il suo valore è falso, il modulo non dovrebbe essere caricato all'avvio; invece, dovrebbe essere caricato su richiesta. Questo attributo non è richiesto.

mio OrderModule che implementa IModule è nel NetworkOrderManagement.WPF_Modules.Order namespace.

Qualsiasi idea?

risposta

6

Questo probabilmente sta usando la riflessione per caricare il modulo in base al suo tipo. È necessario utilizzare il nome di tipo completo per la riflessione affinché funzioni. Questo è in genere del formato: "Full.Namespace.TypeName, AssemblyName". Questa sarebbe la denominazione più semplice. Se ciò non risolve, allora si deve iniziare ad aggiungere attributi supplementare, comprese le cose come versione, la lingua, ecc

+0

E 'ora di lavoro, ho avuto "Namespace, TypeName" senza montaggio. –

Problemi correlati