public static string ExtractResourceDictionaries(string fileContents, out List<string> resourceDictionaryNames)
        {
            #region Extract resource dictionary list, remove resource dictionary from XAML file
            //Test string: <ResourceDictionary Source="Basic_Resources.xaml" />
            //Pattern without escapes:  \<ResourceDictionary(\s*?)Source(\s*?)=(\s*?)"(.*?)"(\s*?)/\>
            string pattern = "\\<ResourceDictionary(\\s*?)Source(\\s*?)=(\\s*?)\"(.*?)\"(\\s*?)/\\>";
            ResourceDictionaryExtractor extractor = new ResourceDictionaryExtractor();
            fileContents = Regex.Replace(fileContents, pattern, new MatchEvaluator(extractor.ExtractResourceDictionary));
            resourceDictionaryNames = extractor.ResourceDictionaryNames;
            #endregion

            #region Remove empty resource dictionaries
            //Pattern without escapes:  \<ResourceDictionary\>(\s*?)\<ResourceDictionary.MergedDictionaries\>(\s*?)\</ResourceDictionary.MergedDictionaries\>(\s*?)\</ResourceDictionary\>
            pattern = "\\<ResourceDictionary\\>(\\s*?)\\<ResourceDictionary.MergedDictionaries\\>(\\s*?)\\</ResourceDictionary.MergedDictionaries\\>(\\s*?)\\</ResourceDictionary\\>";
            fileContents = Regex.Replace(fileContents, pattern, string.Empty);
            #endregion

            return fileContents;
        }
Beispiel #2
0
        public static string ExtractResourceDictionaries(string fileContents, out List <string> resourceDictionaryNames)
        {
            #region Extract resource dictionary list, remove resource dictionary from XAML file
            //Test string: <ResourceDictionary Source="Basic_Resources.xaml" />
            //Pattern without escapes:  \<ResourceDictionary(\s*?)Source(\s*?)=(\s*?)"(.*?)"(\s*?)/\>
            string pattern = "\\<ResourceDictionary(\\s*?)Source(\\s*?)=(\\s*?)\"(.*?)\"(\\s*?)/\\>";
            ResourceDictionaryExtractor extractor = new ResourceDictionaryExtractor();
            fileContents            = Regex.Replace(fileContents, pattern, new MatchEvaluator(extractor.ExtractResourceDictionary));
            resourceDictionaryNames = extractor.ResourceDictionaryNames;
            #endregion

            #region Remove empty resource dictionaries
            //Pattern without escapes:  \<ResourceDictionary\>(\s*?)\<ResourceDictionary.MergedDictionaries\>(\s*?)\</ResourceDictionary.MergedDictionaries\>(\s*?)\</ResourceDictionary\>
            pattern      = "\\<ResourceDictionary\\>(\\s*?)\\<ResourceDictionary.MergedDictionaries\\>(\\s*?)\\</ResourceDictionary.MergedDictionaries\\>(\\s*?)\\</ResourceDictionary\\>";
            fileContents = Regex.Replace(fileContents, pattern, string.Empty);
            #endregion

            return(fileContents);
        }