private static object[] GetConstructorParameters(ConstructorInfo constructor) { var parameterTypes = constructor.GetParameters(); object[] paramaterInstances = new object[parameterTypes.Length]; var parameterPosition = 0; foreach (var parameter in parameterTypes) { if (_registry.ContainsKey(parameter.ParameterType)) { paramaterInstances[parameterPosition] = DIManager.CreateInstance(parameter.ParameterType); parameterPosition++; } else { return(null); } } return(paramaterInstances); }
public static void Start() { while (true) { Console.Write("What type of public transport do you want to take: "); var option = Console.ReadLine(); if (option == "exit") { return; } var match = DIManager.Controllers.Where(c => c.Name.ToLower().StartsWith(option.ToLower())).FirstOrDefault(); if (match != null) { var instance = (IController)DIManager.CreateInstance(match); instance.Get(); Console.Write("\n\n"); } else { Console.Write("\n\nCould not find matching controller\n\n"); } } }