在javascript中,您可以使用undefined关键字检测是否定义了属性:
if( typeof data.myProperty == "undefined" ) ...
您将如何在C#中使用带有
ExpandoObject
的dynamic关键字且不引发异常的方式执行此操作? 最佳答案
根据MSDN的声明,它正在实现IDictionary:
public sealed class ExpandoObject : IDynamicMetaObjectProvider,
IDictionary<string, Object>, ICollection<KeyValuePair<string, Object>>,
IEnumerable<KeyValuePair<string, Object>>, IEnumerable, INotifyPropertyChanged
您可以使用它来查看是否定义了成员:
var expandoObject = ...;
if(((IDictionary<String, object>)expandoObject).ContainsKey("SomeMember")) {
// expandoObject.SomeMember exists.
}
关于c# - 如何检测ExpandoObject上是否存在属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2839598/