private object CreateInstance(RegistrationModel model, object[] arguments = null)
        {
            object returnedObject = null;
            Type   typeToCreate   = model.ObjectType;

            if (model.RType == RegType.Instance)
            {
                returnedObject = InstanceCreationService.GetInstance().GetNewObject(typeToCreate, arguments);
            }
            else if (model.RType == RegType.Singleton)
            {
                returnedObject = SingeltonCreationService.GetInstance().GetSingleton(typeToCreate, arguments);
            }

            return(returnedObject);
        }
        public object GetSingleton(Type typeToCreate, object[] arguments)
        {
            object objectToCreate;

            try
            {
                if (_objectPool.ContainsKey(typeToCreate.Name))
                {
                    objectToCreate = _objectPool[typeToCreate.Name];
                }
                else
                {
                    objectToCreate = InstanceCreationService.GetInstance().GetNewObject(typeToCreate, arguments);
                    _objectPool.Add(typeToCreate.Name, objectToCreate);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }

            return(objectToCreate);
        }
Esempio n. 3
0
 static InstanceCreationService()
 {
     _instance = new InstanceCreationService();
 }