GithubHelp home page GithubHelp logo

obvs.messagedispatcher.autofac's Introduction

#Obvs.MessageDispatcher.Autofac

Provides integration support between the core Obvs.MessageDispatcher framework and the Autofac dependency injection framework in the form of an IMessageHandlerSelector implementation which resolves instances of IMessageHandler<TMessage> from a specified Autofac container.

##Basic configuration Configuration of this integration would look like this:

// Configure and create an Obvs service bus instance
var myObvsServiceBusConfiguration = ConfigureServiceBus();
var serviceBus = myServiceBusConfiguration.CreateServiceBus();
IContainer myAutofacContainer = BuildAutofacContainer();

// Create a message dispatcher for the events that are coming off the service bus
var dispatcherConfiguration = serviceBus.CreateMessageDispatcherFor(sb => sb.Events);

// Configure the dispatcher to use the IMessageHandlerSelector factory which will
// resolve IMessageHandler<TMessage> instances from the supplied Autofac container
dispatcherConfiguration.WithAutofacMessageHandlerSelectorFactory(myAutofacContainer);

// Start the message dispatcher
dispatcherConfiguration.DispatchMessages();

##Autofac Integration Details

###Configuration Extensions

This library also contains an extension method for Autofac's ContainerBuilder to help register any instances of IMessageHandler<TMessage> found in any specified assemblies:

var containerBuilder = new ContainerBuilder();

containerBuilder.RegisterMessageHandlers(typeof(MyProgram).Assembly);

###Lifetime Scopes The WithAutofacMessageHandlerSelector extension method provides a factory method which begins a new Autofac lifetime scope by calling IContainer::BeginLifetimeScope on the supplied IContainer instance.

obvs.messagedispatcher.autofac's People

Contributors

drub0y avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.