c# - 如何安全地检查动态对象是否有字段

标签 c#

我正在遍历动态对象的一个​​属性来寻找一个字段,但我不知道如何在不抛出异常的情况下安全地评估它是否存在。

        foreach (dynamic item in routes_list["mychoices"])
        {
            // these fields may or may not exist
           int strProductId = item["selectedProductId"];
           string strProductId = item["selectedProductCode"];
        }

最佳答案

使用反射比 try-catch 好,所以这是我使用的函数:

public static bool doesPropertyExist(dynamic obj, string property)
{
    return ((Type)obj.GetType()).GetProperties().Where(p => p.Name.Equals(property)).Any();
}

然后..

if (doesPropertyExist(myDynamicObject, "myProperty")){
    // ...
}

关于c# - 如何安全地检查动态对象是否有字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17439248/

相关文章:

c# - 使用 C# 中的 Open Xml SDK 将 DataTable 导出到 Excel

c# - 文件夹选取器对话框

c# - SQLite 错误提供给 Mono.Data.Sqlite.SqliteStatement.BindParameter 命令的参数不足

c# - 你能以编程方式访问 'Service Reference' 吗?

C# - 自动添加 'X' 个按钮,一个接一个。

c# - 通过电子邮件发送至 WorkItem - EWS 2007_SP1 和 TFS 2010

c# - 如何以编程方式触发单选按钮的事件处理程序?

c# - 将 IOrderedEnumerable 转换为 ICollection

c# - 为什么这个可编辑的 ComboBox 中的插入符超出范围?

c# - Npgsql:INSERT 命令不插入