从resourcemanager获取所有字符串

时间:2011-06-30 07:57:55

标签: c# resources resourcemanager

我需要编写一个程序,它从dll中读取所有字符串资源并将它们插入到某个表中。我有方法,读取资源:

    private static IEnumerable<KeyValuePair<string,string>> getAllResources(ResourceManager resourceManager, 
        Language language)
    {

        ResourceSet resourceSet = resourceManager.GetResourceSet(getCulture(language), true, true);

        IDictionaryEnumerator dictNumerator = resourceSet.GetEnumerator();

        // Get all string resources
        while (dictNumerator.MoveNext())
        {
            // Only string resources
            if (dictNumerator.Value is string)
            {
                var key = (string)dictNumerator.Key;
                var value = (string)dictNumerator.Value;
                yield return new KeyValuePair<string, string>(key, value);
            }
        }
    }

但是当我开始使用它时,我注意到它还读取了像文件一样添加的资源(读取文件内容)

如何忽略作为“文件”添加的资源,以及只读字符串?

1 个答案:

答案 0 :(得分:2)

没有办法做到这一点。 例如,通过Reflector查看组装的资源部分。您的文本文件保存为String。字符串值和文本文件值之间没有区别。

二进制文件不会有问题,因为对于二进制文件类型,你将byte []作为值而不是字符串。