ResxResourceReader throwing ArgumentNullException

本文关键字:ArgumentNullException throwing ResxResourceReader | 更新日期: 2023-09-27 17:58:11

我已使用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无法解析上面的行吗?

ResxResourceReader throwing ArgumentNullException

我遇到了同样的问题。。。请使用下面的代码并尝试一下。它对我有效。

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
 }

Version=4.0.0.0

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

假设您不能以.NET 4为目标,那么唯一的解决方法就是重新生成.resx文件。在设计器中打开带有错误.resx文件的表单,然后对其中一个属性进行简单的更改。然后把它改回来。这将重新创建.resx文件,现在将使用2.0.0.0版本的引用。使用文本编辑器查看.resx文件,再次检查更改是否有效。

您可能想使用Edit+Find和Replace+Find in Files来搜索所有.resx文件中的"4.0.0.0",以确保您拥有所有文件。

相关文章:
  • 没有找到相关文章