Autofac.Configuration
                                
                                 Autofac.Configuration copied to clipboard
                                
                                    Autofac.Configuration copied to clipboard
                            
                            
                            
                        Configuration support for Autofac IoC
Autofac.Configuration
Configuration support for Autofac.
Please file issues and pull requests for this package in this repository rather than in the Autofac core repo.
Quick Start
The basic steps to getting configuration set up with your application are:
- Set up your configuration in JSON or XML files that can be read by Microsoft.Extensions.Configuration.- JSON configuration uses Microsoft.Extensions.Configuration.Json
- XML configuration uses Microsoft.Extensions.Configuration.Xml
 
- JSON configuration uses 
- Build the configuration using the Microsoft.Extensions.Configuration.ConfigurationBuilder.
- Create a new Autofac.Configuration.ConfigurationModuleand pass the builtMicrosoft.Extensions.Configuration.IConfigurationinto it.
- Register the Autofac.Configuration.ConfigurationModulewith your container.
A configuration file with some simple registrations looks like this:
{
  "defaultAssembly": "Autofac.Example.Calculator",
  "components": [{
    "type": "Autofac.Example.Calculator.Addition.Add, Autofac.Example.Calculator.Addition",
    "services": [{
      "type": "Autofac.Example.Calculator.Api.IOperation"
    }],
    "injectProperties": true
  }, {
    "type": "Autofac.Example.Calculator.Division.Divide, Autofac.Example.Calculator.Division",
    "services": [{
      "type": "Autofac.Example.Calculator.Api.IOperation"
    }],
    "parameters": {
      "places": 4
    }
  }]
}
JSON is cleaner and easier to read, but if you prefer XML, the same configuration looks like this:
<?xml version="1.0" encoding="utf-8" ?>
<autofac defaultAssembly="Autofac.Example.Calculator">
    <components name="0">
        <type>Autofac.Example.Calculator.Addition.Add, Autofac.Example.Calculator.Addition</type>
        <services name="0" type="Autofac.Example.Calculator.Api.IOperation" />
        <injectProperties>true</injectProperties>
    </components>
    <components name="1">
        <type>Autofac.Example.Calculator.Division.Divide, Autofac.Example.Calculator.Division</type>
        <services name="0" type="Autofac.Example.Calculator.Api.IOperation" />
        <injectProperties>true</injectProperties>
        <parameters>
            <places>4</places>
        </parameters>
    </components>
</autofac>
Note the ordinal "naming" of components and services in XML - this is due to the way Microsoft.Extensions.Configuration handles ordinal collections (arrays).
Build up your configuration and register it with the Autofac ContainerBuilder like this:
// Add the configuration to the ConfigurationBuilder.
var config = new ConfigurationBuilder();
// config.AddJsonFile comes from Microsoft.Extensions.Configuration.Json
// config.AddXmlFile comes from Microsoft.Extensions.Configuration.Xml
config.AddJsonFile("autofac.json");
// Register the ConfigurationModule with Autofac.
var module = new ConfigurationModule(config.Build());
var builder = new ContainerBuilder();
builder.RegisterModule(module);
Check out the Autofac configuration documentation for more information.
Get Help
Need help with Autofac? We have a documentation site as well as API documentation. We're ready to answer your questions on Stack Overflow or check out the discussion forum.