私のアプリケーションでは、数回ArgumentNullException
スローされますが、パラメーター名が指定されていません。これは本番環境でのみ発生しています (javascript によって呼び出されるスクリプト サービスで例外がスローされます)。StackTrace が指すコード スニペットでこの種のエラーを再現しようとしましたが、ArgumentNullException
再現できたすべてのメッセージにパラメーター名が含まれていました。
それで、私の質問は、ArgumentNullException
パラメータ名が指定されていないときにいつスローされるか知っている人はいますか? またはどのメソッドが最終的にこの例外をトリガーする可能性がありますか?
スクリプト サービスは、アプリケーション キャッシュからいくつかの情報を取得するためのものです。
private Dictionary<int, MyType> CachedDictionary
{
get
{
//return the Item from the application cache
return GetItem() as Dictionary<int, MyType>;
}
set
{
//adds the Item to the application cache
//with sliding expiration of X minutes
AddItem(value);
}
}
public List<MyType> Get(List<int> idsToRead)
{
List<int> idsNotCached = idsToRead.Except<int>(CachedDictionary.Keys.ToList<int>()).ToList<int>();
if (idsNotCached.Count > 0)
{
//Exception stack trace points to next line:
MyTypeCollection DBitems = BusinessLayer.StaticLoadFromDB(idsNotCached);
lock (CachedDictionary)
{
foreach (MyType item in DBitems)
if (!CachedDictionary.ContainsKey(item.ID))
CachedDictionary.Add(item.ID, item);
}
}
return CachedDictionary.Where(p => idsToRead.Contains(p.Key)).Select(p => p.Value).ToList<MyType>();
}
public static MyTypeCollection StaticLoadFromDB(List<int> ids)
{
try
{
//load from db...
}
catch (Exception e)
{
return HandleException<MyType>(e);
//returns MyTypeCollection with HasError set to TRUE and defined ErrorMessage
}
}