При подключении существующей веб-службы для обработки MQMessage я хотел бы иметь возможность сериализовать сообщение в базе данных, прежде чем он превратится в объект запроса и передан в конечную точку службы. Как я могу это сделать, учитывая этот код в моем файле apphost?Как регистрировать сообщение MQ Message перед его преобразованием в DTO?
var mqServer = container.Resolve<IMessageService>();
//todo: would like to log the message here, instead of the Service, or Global filter
mqServer.RegisterHandler<LeadInformation>(ServiceController.ExecuteMessage);
mqServer.Start();
Update
Это то, что я был в надежде реализовать
var mqServer = container.Resolve<IMessageService>();
mqServer.RegisterHandler<LeadInformation>(m =>
{
var db = container.Resolve<IFrontEndRepository>();
db.SaveMessage(m as Message);
return ServiceController.ExecuteMessage(m);
});
mqServer.Start();
Существуют ли какие-либо недостатки в этом?
Спасибо, Стефану
Использование AppSelfHostBase, кажется, не может чтобы получить RequestFilter для компиляции. –
Если вы не используете конкретный тип, вам нужно его бросить, например: '((RabbitMqServer) mqServer) .RequestFilter = ...;' – mythz