ResxResourceReader抛出ArgumentNullException

时间:2016-07-21 08:03:10

标签: c#

我使用ResxResourceReader来读取资源文件。它适用于某些文件。在线下解析时出现错误

<data name="GlbResource"  type="System.Resources.ResXFileRef,  
System.Windows.Forms">
<value>glbresource.resx;System.String, mscorlib, Version=4.0.0.0,  
Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>

你能告诉我为什么ResxResourceReader无法解析上面的行吗?

2 个答案:

答案 0 :(得分:0)

Version=4.0.0.0

这就是问题所在。您没有在.NET 4.0(或更高版本)上运行。因此,您的程序无法从版本4程序集加载类型。

假设您无法定位.NET 4,唯一的解决方法是重新生成.resx文件。在设计器中使用错误的.resx文件打开表单,并对其中一个属性进行微不足道的更改。然后改回来。这将重新创建.resx文件,现在将使用版本2.0.0.0引用。通过使用文本编辑器查看.resx文件,仔细检查更改是否有效。

您可能希望使用编辑+查找和替换+在文件中查找来搜索&#34; 4.0.0.0&#34;的所有.resx文件。确保你拥有所有这些。

答案 1 :(得分:0)

我有同样的问题...... 请使用以下代码并试用。 它为我工作..

XDocument xDoc = XDocument.Load("File Path");
IEnumerable<XElement> xmlData = xDoc.Descendants("node name");
foreach(XElement element in xmlData)
{
   if(element == null)
   {
       continue;
   }

   // retrieve key using element.Attribute("name").Value
   // retrieve value using element.Element("value").Value
 }