Objects on demand

This commit is contained in:
2020-11-29 20:57:05 +01:00
parent 4abfd0ed97
commit 5ca347fc6a

View File

@ -6,6 +6,8 @@ namespace PatternDemoCore
public class Entity
{
public delegate Entity Factory();
private static Random random = new Random();
private int number;
@ -22,16 +24,17 @@ namespace PatternDemoCore
public class ViewModel
{
private readonly IContainer container;
private readonly Entity.Factory entityFactory;
public ViewModel(IContainer container)
public ViewModel(Entity.Factory entityFactory)
{
this.container = container;
this.entityFactory = entityFactory;
}
public void Method()
{
var entity = container.Resolve<Entity>();
var entity = entityFactory();
Console.WriteLine(entity);
}
}
@ -40,7 +43,16 @@ namespace PatternDemoCore
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
var cb = new ContainerBuilder();
cb.RegisterType<Entity>().InstancePerDependency();
cb.RegisterType<ViewModel>();
var container = cb.Build();
var vm = container.Resolve<ViewModel>();
vm.Method();
vm.Method();
}
}
}