C# - ResourceManager和ResourceSet返回空或null结果

6

我目前正在处理资源文件,以翻译一些文本。

我有主要的"RevitString.resx"和 "RevitString.fr-FR.resx"。 它们都具有相同的键和已翻译的值,并且是公开的。

我想在我的C#代码中使用以下代码:

ResourceSet resourceSet = Resources.Languages.Tables.RevitString.ResourceManager.GetResourceSet(CultureInfo.CurrentUICulture, true, true);
type = (from ResourceDictionary x 
        in resourceSet 
        where x.Keys.ToString() == _type.Definition.ParameterGroup.ToString()
        select x.Values.ToString()).FirstOrDefault();

但是当我运行这个代码时,我得到了一个空的ResourceSet,当我查看ResourceManager时,"ResourceSets"为空,计数为0。
我做错了什么?
我已经看过一些帖子,比如this 谢谢!

你测试过 where x.Keys.ToString() == "yourKey",看它是否返回了什么东西吗? - interesting-name-here
抱歉,您的“resourceset”计数为0。 - interesting-name-here
@GibralterTop 是的,我尝试过了,由于我的计数器为0,也遇到了空指针异常:( - Thibaud
也许这里的一些内容可以帮助:http://stackoverflow.com/q/39858236/5224021 - interesting-name-here
@GibralterTop 它有效了!谢谢 :) - Thibaud
太棒了!请确保在可以的时候发布您的工作代码/解决方案,以供未来的访问者参考。 - interesting-name-here
1个回答

2
感谢GibralterTop提供了好的链接。
以下是我现在使用的内容。
ResourceSet resourceSet = Resources.Languages.Tables.RevitString.ResourceManager.GetResourceSet(CultureInfo.CurrentUICulture, true, true);
IDictionaryEnumerator enumerator = resourceSet.GetEnumerator();
while (enumerator.MoveNext())
{
switch(enumerator.Key)...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接