2009-06-12 11 views
5

Estoy usando prisma como ejemplo; esta es la primera vez que juego con WPF. He escrito dos módulos; orderModule y orderDetailModule. Pude ejecutar mi aplicación y hacer que se llenaran en una pantalla, ahora estoy tratando de cargar solo un módulo y cargar el otro con un clic de botón. Estaba cargando mis módulos en código antes, luego noté que el prisma está usando xml, así que estoy intentando hacer esto también. Por alguna razón no puede encontrarlos, el error total que recibo es:No se puede recuperar el tipo de módulo Error

Microsoft.Practices.Composite.Modularity.ModuleInitializeException fue controlada mensaje = "No se puede recuperar el tipo de módulo NetworkOrderManagement.WPF_Modules.Order, OrderModule de los ensamblajes cargados. Es posible que deba especificar un nombre de tipo más completo ".

Esta es la sección de módulos en mi 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"/> 

De link text

Dentro de la sección de configuración de módulos, definir su módulo. Para hacer esto, agregue un elemento XML de módulo. Este elemento tiene los siguientes atributos:

assemblyFile. Este atributo especifica la ubicación del ensamblaje del módulo. Este atributo es obligatorio.

moduleType. Este atributo especifica el tipo dentro del ensamblaje del módulo que implementa la interfaz IModule. Este atributo es obligatorio.

moduleName. Este atributo especifica el nombre del módulo. Este atributo es obligatorio.

startupLoaded. Este atributo especifica si el módulo se carga al inicio. Si su valor es verdadero (este es el valor predeterminado), el módulo debe cargarse al inicio. Si su valor es falso, el módulo no se debe cargar al inicio; en cambio, debe cargarse a demanda. Este atributo no es obligatorio.

Mi OrderModule que implementa IModule se encuentra en el espacio de nombres NetworkOrderManagement.WPF_Modules.Order.

¿Alguna idea?

Respuesta

6

Esto probablemente esté utilizando la reflexión para cargar el módulo según su tipo. Debe usar el nombre de tipo completo para que funcione la reflexión. Esto normalmente tiene el formato: "Full.Namespace.TypeName, AssemblyName". Este sería el nombre más básico. Si esto no se resuelve, entonces debe comenzar a agregar atributos adicionales, incluidos elementos como Versión, Idioma, etc.

+0

Está funcionando ahora, tenía "Namespace, TypeName" sin ensamblaje. –

Cuestiones relacionadas