Пример #1
0
        static void Main(string[] args)
        {
            DIManager.RegisterControllers();
            DIManager.Register <ILogger, Logger>();
            DIManager.Register <IBus, Bus>();
            DIManager.Register <IFerry, Ferry>();
            DIManager.Register <ISubway, Subway>();

            Loop.Start();
        }
Пример #2
0
        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);
        }
Пример #3
0
 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");
         }
     }
 }