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); }