Register container module

This commit is contained in:
2020-12-01 22:00:52 +01:00
parent 618ce16f70
commit 0588a6a224

View File

@ -107,22 +107,26 @@ namespace AutofacSamples3
} }
} }
public class ParentChildModule : Autofac.Module
{
protected override void Load(ContainerBuilder builder)
{
builder.RegisterType<Parent>();
builder.Register(c => new Child() { Parent = c.Resolve<Parent>() });
}
}
internal class Program internal class Program
{ {
public static void Main(string[] args) public static void Main(string[] args)
{ {
var assembly = Assembly.GetExecutingAssembly();
var builder = new ContainerBuilder(); var builder = new ContainerBuilder();
builder.RegisterAssemblyTypes(assembly) //builder.RegisterAssemblyModules(typeof(Program).Assembly);
.Where(t => t.Name.EndsWith("Log")) builder.RegisterAssemblyModules<ParentChildModule>(typeof(Program).Assembly);
.Except<SMSLog>()
.Except<ConsoleLog>(c => c.As<ILog>().SingleInstance())
.AsSelf();
builder.RegisterAssemblyTypes(assembly) var container = builder.Build();
.Except<SMSLog>() Console.WriteLine(container.Resolve<Child>().Parent);
.Where(t => t.Name.EndsWith("Log"))
.As(t => t.GetInterfaces()[0]);
} }
} }