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
{
public static void Main(string[] args)
{
var assembly = Assembly.GetExecutingAssembly();
var builder = new ContainerBuilder();
builder.RegisterAssemblyTypes(assembly)
.Where(t => t.Name.EndsWith("Log"))
.Except<SMSLog>()
.Except<ConsoleLog>(c => c.As<ILog>().SingleInstance())
.AsSelf();
//builder.RegisterAssemblyModules(typeof(Program).Assembly);
builder.RegisterAssemblyModules<ParentChildModule>(typeof(Program).Assembly);
builder.RegisterAssemblyTypes(assembly)
.Except<SMSLog>()
.Where(t => t.Name.EndsWith("Log"))
.As(t => t.GetInterfaces()[0]);
var container = builder.Build();
Console.WriteLine(container.Resolve<Child>().Parent);
}
}