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(); */ }
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"); }
public AutomobileShowroom(IAutomobileFactory factory) { _factory = factory; }