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>
問題は、Web アプリケーションを Chrome または Firefox で開くとエラーは発生しないが、IE 9 で (同じ状態で同じ開発環境で) 使用するとSystem.NullReferenceException: Object reference not set が発生することです。 foreach ループの開始時にオブジェクトのインスタンスに。デバッグ中に、Chrome または FireFox で使用しているときにQuickWatchで oParamCollection の値を確認すると、カウントが 1 になりますが、IE 9 でアプリケーションを使用しているときに値を確認すると、カウントで例外が発生します。とても混乱しています。この問題をインターネットで検索するのにかなりの時間を費やしましたが、今までポインターはありませんでした。SOは私の最後の希望です。前もって感謝します。