private static IIoCContainer SetupIoC(IReadOnlyList <string> args) { IIoCContainer container; if (args.Count < 2) { throw new Exception("Invalid arguments"); } if (args[0] == "code") { if (args.Count != 3) { throw new Exception("Invalid arguments"); } container = new IoCContainer(); if (args[1] == "txt") { container.AddTransient <IMovieFinder, MovieFinderTxt>(args[2]); } else { container.AddTransient <IMovieFinder, MovieFinderJson>(args[2]); } container.AddSingleton <IMovieLister, MovieLister>(); } else if (args[0] == "config") { var factory = new IoCContainerFactory(args[1]); container = factory.CreateContainer(); } else { throw new Exception("Invalid arguments"); } return(container); }