Skip to content
mookid8000 edited this page Jun 5, 2012 · 19 revisions

This is a very basic example on how to get started.

Create a C# project - any kind of project really, and then find someplace where you can write the following magic spells:

// we have the container in a variable, but you would probably stash it in a static field somewhere
var container = new WindsorContainer();

Configure.With(new WindsorContainerAdapter(container))
    .Transport(t => t.UseMsmqAndGetInputQueueNameFromAppConfig())
    .DetermineEndpoints(d => d.FromRebusConfigurationSection())
    .CreateBus().Start();

and then, before you run it, add the following XML abracadabra to your app.config/web.config:

<configSections>
    <section name="rebus" type="Rebus.Configuration.RebusConfigurationSection, Rebus" />
</configSections>

<rebus inputQueue="my-app.input" errorQueue="my-app.error" workers="1">
    <endpoints>
        <!-- <add messages="SomeAssembly" endpoint="another-app.input"/> -->
    </endpoints>
</rebus>

Then, see if you can run the program without getting slapped in the face with exceptions and whatnot. If so, try adding a handler to your container:

container.Register(Component.For<IHandleMessages<DateTime>>().ImplementedBy<PrintDateTime>());

and the handler looks like this:

public class PrintDateTime : IHandleMessages<DateTime>
{
    public void Handle(DateTime currentDateTime)
    {
        Console.WriteLine("The time is {0}", currentDateTime);
    }
}

and then make your app send the current time to itself by doing something like this:

Clone this wiki locally