public string CreateDungeon(DungeonConfig configuration) { //use a child container for this request which will dispose everything using (TinyIoCContainer requestContainer = _container.GetChildContainer()) { //register the requested config for others to find it requestContainer.Register <DungeonConfig>(configuration); string id = requestContainer.Resolve <IIdGenerator>().GetNextId(configuration.Name); DungeonConfigEntity dungeonConfig = requestContainer.Resolve <DungeonConfigEntity>(); IDungeonDepot depot = requestContainer.Resolve <IDungeonDepot>(); depot.Add(id, dungeonConfig); return(id); } }