示例#1
0
        static void Main(string[] args)
        {
            //  Console.WriteLine(typeof(BMWFactory).FullName);
            // Console.WriteLine(typeof(BMWFactory).AssemblyQualifiedName);
            // IAutomobileFactory fact = BMWFactory.GetInstance();
            var f = ConfigurationSettings.AppSettings["Factory"];

            MethodInfo         method = Type.GetType(f).GetMethod("GetInstance");
            IAutomobileFactory fact   = null;

            fact = (IAutomobileFactory)method.Invoke("GetInstance", null);
            IAutoMobile auto = fact.Make();

            auto.Start();
            auto.Stop();
            //  Type type = Type.GetType(f);

            //   IAutomobileFactory fact = type.GetMethod("GetInstance");
            //   var method = type.GetMethod("GetInstance");
            //    IAutomobileFactory fact = (IAutomobileFactory)method;
            //   Class1 c = new Class1();


            //  IAutomobileFactory fact = (IAutomobileFactory)Type.GetType(f).GetMethod("GetInstance");

            /* IAutomobileFactory fact = BMWFactory.GetInstance();
             * IAutoMobile auto = fact.Make();
             * auto.Start();
             * auto.Stop();  */
        }
示例#2
0
        static void Main(string[] args)
        {
            IKernel kernel = new StandardKernel(new CustomerModule());

            // Easy way to create factory. No class created, only interface.
            IAutomobileFactory factory = kernel.Get <IAutomobileFactory>(); // Instead of NEW keyword

            IAutomobile instance  = factory.CreateAutomobile("Honda", "Civic", 500);
            IAutomobile instance2 = factory.CreateAutomobile("Honda", "Jazz", 200);

            Console.WriteLine(instance.Price);
            Console.WriteLine(instance2.Price);

            // Inject dependency IInputOutputProvider into IWheaterDataProvider
            IWeatherDataProvider weather = kernel.Get <IWeatherDataProvider>();

            weather.DisplayWeatherInformation("Wonderful wheater");
        }
示例#3
0
 public AutomobileShowroom(IAutomobileFactory factory)
 {
     _factory = factory;
 }