c# - 从资源管理器中获取所有字符串

标签 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);
            }
        }
    }

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

如何忽略作为"file"添加的资源,只读字符串?

最佳答案

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

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

关于c# - 从资源管理器中获取所有字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6531677/

相关文章:

c# - 如何在我的 ASP.Net MVC 5 应用程序的同一页面中编辑和删除 POST 请求

c# - MVC 5 异步任务<ActionResult> 索引 View 的单元测试

c# - 当调用委托(delegate)时,如何发送用作参数的参数列表?

android - 将 Android 项目从 Eclipse 迁移到 Android Studio 后找不到属性文件

windows-phone-7 - 从 XAP 内的目录加载图像

c# - 如何使用友好的名称通过 Web API 设置层次结构值,而不将结构本身暴露给用户?

德尔福=帕斯卡?学习资源?

c# - 循环访问一组图像资源 (.resx)

Hadoop Yarn 守护进程停止运行

c# - ResourceManager 没有选择正确的语言