Пример #1
0
        private IList <string> GetResourceNamesForCulture(CultureInfo culture)
        {
            var resourceStreamName = GetResourceStreamName(culture);

            var cacheKey = $"assembly={_resourceAssemblyWrapper.FullName};resourceStreamName={resourceStreamName}";

            var cultureResourceNames = _resourceNamesCache.GetOrAdd(cacheKey, _ =>
            {
                using (var cultureResourceStream = _resourceAssemblyWrapper.GetManifestResourceStream(resourceStreamName))
                {
                    if (cultureResourceStream == null)
                    {
                        return(null);
                    }

                    using (var resources = new ResourceReader(cultureResourceStream))
                    {
                        var names = new List <string>();
                        foreach (DictionaryEntry entry in resources)
                        {
                            var resourceName = (string)entry.Key;
                            names.Add(resourceName);
                        }
                        return(names);
                    }
                }
            });

            return(cultureResourceNames);
        }
        private IList <string> GetResourceNamesForCulture(CultureInfo culture)
        {
            var resourceStreamName = _resourceBaseName;

            if (!string.IsNullOrEmpty(culture.Name))
            {
                resourceStreamName += "." + culture.Name;
            }
            resourceStreamName += ".resources";

            var cacheKey = $"assembly={_resourceAssemblyWrapper.FullName};resourceStreamName={resourceStreamName}";

            var cultureResourceNames = _resourceNamesCache.GetOrAdd(cacheKey, _ =>
            {
                var names = new List <string>();
                using (var cultureResourceStream = _resourceAssemblyWrapper.GetManifestResourceStream(resourceStreamName))
                    using (var resources = new ResourceReader(cultureResourceStream))
                    {
                        foreach (DictionaryEntry entry in resources)
                        {
                            var resourceName = (string)entry.Key;
                            names.Add(resourceName);
                        }
                    }

                return(names);
            });

            return(cultureResourceNames);
        }
Пример #3
0
            public override ResourceSet GetResourceSet(CultureInfo culture, bool createIfNotExists, bool tryParents)
            {
                var resourceStream = _assemblyWrapper.GetManifestResourceStream(BaseName);

                return(resourceStream != null ? new ResourceSet(resourceStream) : null);
            }