private void LoadXmlIfNeeded() { if (_projectInfosXml != null) { return; } var xmlSerializer = new XmlSerializer(typeof(ProjectInfosXml)); using (var fs = File.OpenRead(_xmlFilePath)) { _projectInfosXml = (ProjectInfosXml)xmlSerializer.Deserialize(fs); } _projectInfosByName = _projectInfosXml.ProjectInfos .Select(CreateProjectInfo) .ToDictionary(pi => pi.Name); }