Register container module
This commit is contained in:
@ -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);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user