Autofac json configuration

 static void Main(string[] args)
        {
            var config = new ConfigurationBuilder();
            config.AddJsonFile("autofac.json");
            // Register the ConfigurationModule with Autofac.
            var module = new ConfigurationModule(config.Build());
            var builder = new ContainerBuilder();
            builder.RegisterModule(module);
            var container = builder.Build();
            IOperation operation = container.Resolve<IOperation>();
            operation.Hello();

           
        }
{
  "defaultAssembly": "Autofac.Example.Calculator",
  "components": [
    {
      "type": "Autofac.Example.Calculator.Addition.Add, Autofac.Example.Calculator",
      "services": [
        {
          "type": "Auofac.Example.Calculator.Api.IOperation,Autofac.Example.Calculator"
        }
      ],
      "injectProperties": true
    },
    {
      "type": "Autofac.Example.Calculator.Division.Divide, Autofac.Example.Calculator",
      "services": [
        {
          "type": "Auofac.Example.Calculator.Api.IOperation,Autofac.Example.Calculator"
        }
      ],
      "parameters": {
        "places": 4
      }
    }
  ]
}
public class IOperation
   {
       public virtual void Hello()
       {
           Console.WriteLine("Hello");
       }
   }
 
 public class Divide : IOperation
   {
       public override void Hello()
       {
           Console.WriteLine("Hello,I'm Divide");
       }
   }
 
public class Add : IOperation
   {
       public override void Hello()
       {
           Console.WriteLine("Hello,I'm Add");
       }
   }
<?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>

  

  

  

  

  

posted on 2020-04-01 14:06  迎着风追赶  阅读(319)  评论(0编辑  收藏  举报

导航