https://autofaccn.readthedocs.io/en/latest/getting-started/index.html
The basic pattern for integrating Autofac into your application is:
This getting started guide walks you through these steps for a simple console application. Once you have the basics down, you can check out the rest of the wiki for more advanced usage and integration information for WCF, ASP.NET, and other application types.
class Program { private static IContainer Container { get; set; } static void Main(string[] args) { var builder = new ContainerBuilder(); builder.RegisterType<ConsoleOutput>().As<IOutput>(); builder.RegisterType<TodayWriter>().As<IDateWriter>(); Container = builder.Build(); // The WriteDate method is where we‘ll make use // of our dependency injection. We‘ll define that // in a bit. WriteDate(); Console.ReadLine(); } public static void WriteDate() { // Create the scope, resolve your IDateWriter, // use it, then dispose of the scope. using (var scope = Container.BeginLifetimeScope()) { var writer = scope.Resolve<IDateWriter>(); writer.WriteDate(); } } }
IDateWriter.IDateWriter maps to TodayWriter so starts creating a TodayWriter.TodayWriter needs an IOutput in its constructor.IOutput maps to ConsoleOutput so creates a new ConsoleOutput instance.ConsoleOutput instance to finish constructing the TodayWriter.TodayWriter for “WriteDate” to consume.
原文:https://www.cnblogs.com/chucklu/p/10300239.html