From 5ca347fc6a5c7977990377985f81305aeae2dfc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tommy=20=C3=96man?= Date: Sun, 29 Nov 2020 20:57:05 +0100 Subject: [PATCH] Objects on demand --- PatternDemo2/Program.cs | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/PatternDemo2/Program.cs b/PatternDemo2/Program.cs index 232b0a1..d969d84 100644 --- a/PatternDemo2/Program.cs +++ b/PatternDemo2/Program.cs @@ -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(); + 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().InstancePerDependency(); + cb.RegisterType(); + + var container = cb.Build(); + var vm = container.Resolve(); + + vm.Method(); + vm.Method(); + } } }