我正在用 ASP.NET (C#) 开发一个 web 应用程序,下面的代码片段是函数的一部分:
string[] paramList = new string[2];
string[] paramValList = new string[2];
XDocument doc = XDocument.Parse(paramXML);
var oParamCollection = from parameters in doc.Descendants("myfunction")
select new
{
Name = parameters.Attribute("myParam").Value,
Value = parameters.Attribute("myParamValue").Value
};
int i=0;
foreach (var oParam in oParamCollection)
{
string name = oParam.Name.Trim();
string value = oParam.Value.Trim();
paramList[i] = oParam.Name.Trim();
paramValList[i++] = oParam.Value.Trim();
if (i >= 2)
break;
}
以下是在 3 代码行中使用的 paramXML 变量(参数)的值:
<root><myfunction myparam=" DeliveryDate" myparamvalue="2012-07-01" ></myfunction></root>
现在的问题是,当我在 Chrome 或 Firefox 中打开我的网络应用程序时,没有错误,但是当我在 IE 9 中使用它时(在相同的状态和相同的开发环境中),我得到System.NullReferenceException: Object reference not set到foreach 循环开始时的对象实例。在调试时,我在 Chrome 或 FireFox 中使用时检查了QuickWatch中的 oParamCollection 的值,我得到的计数为 1,但是当我在 IE 9 中使用应用程序时检查该值时,计数给出了异常。我很困惑。花了很长时间在互联网上搜索这个问题,但直到现在还没有指针。所以是我最后的希望。先感谢您。