C# Expando对象访问不存在的属性

C# Expando对象访问不存在的属性,c#,c#-4.0,expandoobject,expando,C#,C# 4.0,Expandoobject,Expando,我正在处理C#中的expando对象,但是,我想知道当我们访问一个不存在的属性时,是否有一种方法来指定一个预定义的值,如“Prop not found”?我的代码如下所示,如果我们访问字典中的未知属性(强制转换为expandoObject),我就有Runtimebinderexception var dict = new ExpandoObject() as IDictionary<string, object>; foreach (var item in xmldoc.

我正在处理C#中的expando对象,但是,我想知道当我们访问一个不存在的属性时,是否有一种方法来指定一个预定义的值,如“Prop not found”?我的代码如下所示,如果我们访问字典中的未知属性(强制转换为expandoObject),我就有Runtimebinderexception

var dict = new ExpandoObject() as IDictionary<string, object>;

     foreach (var item in xmldoc.Root.Elements("test"))
     {
          dict .Add(item.Attribute("key").Value, item.Element("value").Value);
     }

/*Existing key, it works fine*/ var testKey = dict.TestData

/*For non existing key in the dictionary*/ var testKey = dict.NewKey; /*I have an exception here*/
var dict=newexpandoobject()作为IDictionary;
foreach(xmldoc.Root.Elements(“测试”)中的var项)
{
dict.Add(item.Attribute(“key”).Value,item.Element(“Value”).Value);
}
/*现有键,它工作正常*/var testKey=dict.TestData
/*对于字典中不存在的密钥*/var testKey=dict.NewKey/*我这里有个例外*/

那么,是否有任何方法可以避免异常并显示如上所述的值(未找到道具)?谢谢

为什么不捕获异常,然后返回“Prop not found”@Domysee问题是这个字典稍后将被传递到视图,并强制转换到我们访问dict.NewKey的动态类型变量,按照我们团队的惯例,很遗憾,我不能放置任何捕获异常。