在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/

10-11 20:13