Поскольку ни один из ответов не содержит код. В дополнение к этому вопросу может пригодиться то, как на самом деле посмотреть словарь .Data
. Так как это не общий словарь, а возвращает только IDictionary
foreach(var kvp in exception.Data)
тип kvp на самом деле будет object
бесполезно. Однако из MSDN есть простой способ перебрать этот словарь:
foreach (DictionaryEntry de in e.Data)
Console.WriteLine(" Key: {0,-20} Value: {1}",
"'" + de.Key.ToString() + "'", de.Value);
Я не знаю, что будет означать аргумент формата , -20
, может быть, Take (20)? Отступление ... этот код может быть очень полезен в обычном регистраторе ошибок, чтобы раскрутить эти данные. Более полное использование будет похоже на:
var messageBuilder = new StringBuilder();
do
{
foreach (DictionaryEntry kvp in exception.Data)
messageBuilder.AppendFormat("{0} : {1}\n", kvp.Key, kvp.Value);
messageBuilder.AppendLine(exception.Message);
} while ((exception = exception.InnerException) != null);
return messageBuilder.ToString();