Пример #1
0
        static void Main(string[] args)
        {
            #region caso 1
            //------------------------------------------------------------------------------------
            //Asi se inicializa la fabrica de objectos declarando más de una dependencia.
            //ObjectFactory.Initialize(x =>
            //{
            //    x.For<IPersona>().Use<Persona>();
            //    x.For<IPersona>().Use<PersonaDeCiudad>().Named("PersonaQueViveEnCiudad");
            //    x.For<IPersona>().Use<PersonaDePueblo>().Named("PersonaQueViveEnProvincia");
            //});
            #endregion

            #region caso 2
            //------------------------------------------------------------------------------------
            //Asi se inicializa la fabrica de objectos incluyendo un conjunto de definiciones lo que se llama Registry.
            //ObjectFactory.Initialize(x => x.IncludeRegistry(new RegistryPersonalizada()));
            #endregion

            #region caso 3
            //------------------------------------------------------------------------------------
            //Asi se inicializa la fabrica de objectos incluyendo un conjunto de Registry's.
            //ObjectFactory.Initialize(x =>
            //{
            //    x.IncludeRegistry(new RegistryPersonalizada());
            //    x.IncludeRegistry(new RegistryPersonalizadaAdicionalUno());
            //    x.IncludeRegistry(new RegistryPersonalizadaAdicionalDos());
            //});
            #endregion

            #region caso 4
            //------------------------------------------------------------------------------------
            // Para agregar más Registry's despues de utilizar el Initialize se utiliza el Configure
            // ObjectFactory.Configure(x => x.IncludeRegistry(new RegistryPersonalizadaAdicionalUno()));
            // ObjectFactory.Configure(x => x.IncludeRegistry(new RegistryPersonalizadaAdicionalDos()));
            #endregion

            IPersona personaBase = ObjectFactory.GetInstance <IPersona>();
            Console.WriteLine("PersonaBase:" + personaBase.ObtenerNombre());

            IPersona personaDeCiudad = ObjectFactory.GetNamedInstance <IPersona>("PersonaQueViveEnCiudad");
            Console.WriteLine("PersonaDeCiudad:" + personaDeCiudad.ObtenerNombre());

            IPersona personaDeProvincia = ObjectFactory.GetNamedInstance <IPersona>("PersonaQueViveEnProvincia");
            Console.WriteLine("PersonaDeProvincia:" + personaDeProvincia.ObtenerNombre());


            try
            {
                // IPersona personaConError = ObjectFactory.GetNamedInstance<IPersona>("PersonaQueNoViveEnEsteMundo");
            }
            catch (Exception error) { Console.WriteLine(error.Message.ToString()); }


            Console.ReadLine();
        }