public IEnumerable <ConfigDocumentOverride> CreateOverrides()
 {
     return(_xDoc
            .Descendants()
            .Where(e => e != _xDoc.Root && !e.HasElements)
            .Select(n => new ConfigDocumentOverride(XElementPathProvider.Provide(n), n.Value))
            .ToArray());
 }
        public IEnumerable <ConfigDocumentSecret> GetSecrets()
        {
            foreach (var descendant in _xDoc.Descendants().Where(d => !d.HasElements))
            {
                var match = Regex.Match(descendant.Value, "\\[secret:(?<skey>[\\w\\-\\d]+)\\]");
                if (!match.Success)
                {
                    continue;
                }

                var secretKey = match.Groups["skey"].Value;

                yield return(new ConfigDocumentSecret(descendant, secretKey, XElementPathProvider.Provide(descendant)));
            }
        }