Sto tentando di pubblicare un messaggio come mostrato di seguitoNServiceBus: Impossibile trovare i metadati per (messaggio)
_bus.Publish(new BatchCompleted { BatchId = batch.Id});
E gestirlo in un BatchCompletedHandler:
public class BatchCompletedHandler: IHandleMessages<BatchCompleted>
{
public void Handle(BatchCompleted message)
{
Do Some Stuff...
}
}
Ogni volta che provo e pubblicare il messaggio Ho ottenuto il seguente System.Exception:
Impossibile trovare i metadati per "MyAssembly.BatchCompleted". I messaggi devono implementare "IMessage", "IEvent" o "ICommand". In alternativa, se non si desidera implementare un'interfaccia, è possibile configurare "Messaggi in modalità non intrusiva" e utilizzare la convenzione per configurare la modalità di mappatura dei messaggi.
Il messaggio fa attuare iEvent come illustrato di seguito
[Serializable]
public class BatchCompleted : IEvent
{
public int BatchId{ get; set; }
}
Sto configurando NSB utilizzando il seguente codice
Configure.With(MyAssembly)
Il gestore di messaggi è in assemblea MyAssembly ei messaggi sono nel MyMessagesAssembly.
Cosa sto sbagliando?
Puoi pubblicare la tua configurazione? Il tuo UnicastBusConfig, i mapping dei messaggi sono configurati in modo appropriato? Il tuo gruppo di messaggi usa la stessa versione .net? cioè il tuo gestore utilizza .net 4.0 ei tuoi messaggi a .net 4.5? –
Grazie Indu, per il puntatore. Era la configurazione a causare il problema! –