从Exception.Data c#获取键值

Bas*_*yon 5 c# exception

我想使用Data属性来存储我想要在新异常中抛出的信息,并且我已经弄清楚如何使用这个片段循环遍历每个DictionaryEntries

foreach (DictionaryEntry de in ex.Data)
Run Code Online (Sandbox Code Playgroud)

但我更喜欢的是通过其键名获取值,因为我在该Data对象中有不同的对象类型.如果我可以通过其键名获取值,则更容易将它们转换为正确类型的对象.

任何人都知道如何通过键名获取Exception.Data字典条目?

小智 6

foreach (DictionaryEntry de in ex.Data)
{
    if (de.Key == "something")
    {
        //do something
    }
}
Run Code Online (Sandbox Code Playgroud)


Cro*_*der 5

如果您知道密钥,那么使用Dictionary来获得它的好处会更有效:

var yourObj = ex.Data["your_key"];
Run Code Online (Sandbox Code Playgroud)

  • 并且因为如果“IDictionary”中不存在该键,“ex.Data["your_key"]”将简单地返回“null”,因此您甚至可以实现某种“KeyNotFoundException”。 (2认同)