-
Book Overview & Buying
-
Table Of Contents
-
Feedback & Rating
Learning NServiceBus - Second Edition - Second Edition
By :
Now that we have a service endpoint to host our code, we will create a message handler within the endpoint that will process our message when it arrives:
UserCreator.cs to the service.using block of the class file:using NServiceBus; using NServiceBus.Logging; using UserService.Messages.Commands;
public.IHandleMessages<CreateNewUserCmd>.Handle(CreateNewUserCmd message) stub method.Normally, we would want to create the user here with calls to a database. In order to keep the examples straightforward, we will skip the details of database access and just demonstrate what will happen by logging a message.
With NServiceBus, you can use any logging framework you like without being dependent upon that framework. NServiceBus internally includes a logging system that logs to both console and file, with an API that looks very much like log4net (previous versions of NServiceBus actually used the log4net framework directly). In Chapter 7, Advanced Configuration, you will learn how to easily swap these out for the real log4net framework, NLog framework, or implement an adapter for any logger we like. For now, we are more than content with the built-in logging implementation via the NServiceBus.Logging namespace.
Now lets finish our fake implementation for the handler:
Handle method, add an instance of a logger:private static readonly ILog log = LogManager.GetLogger(typeof(UserCreator));
NotImplementedException and replace it with the following statement: log.InfoFormat("Creating user '{0}' with email '{1}'",message.Name,message.EmailAddress);
When you're done, your class should look like this:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UserService.Messages.Commands;
using NServiceBus;
namespace UserService
{
public class UserCreator : IHandleMessages<CreateNewUserCmd>
{
private static readonly ILog log =
LogManager.GetLogger(typeof(UserCreator));
public void Handle(CreateNewUserCmd message)
{
log.InfoFormat("Creating user '{0}' with email '{1}'",
message.Name,
message.EmailAddress);
}
}
}Now we have a command message and a service endpoint to handle it. Its okay if you don't understand quite how all of this connects yet. Next, we need to create a way to send the command.
Downloading the example code
You can download the example code files for all Packt books you have purchased from your account at http://www.packtpub.com. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.
Change the font size
Change margin width
Change background colour