此方法中缺少获取实体的内容 属性

Missing something in this method to get the Entity property

private String[] GetProperties(EContent_EcontentFields eContentField)
{
    List<String> list = new List<String>();
    Type fieldType = eContentField.GetType();
    var properties = fieldType.GetProperties();
    foreach (var prop in properties)
    {
        if (prop.MemberType == MemberTypes.Property)
        {
            if (prop.PropertyType.IsGenericType)
            {
                dynamic items = prop.GetValue(eContentField, null);
                foreach (var item in items)
                {
                    Type typeItem = item.GetType();
                    list.Add(item);
                }
            }
        }
    }

    return list.ToArray();
}

这是我检索具有实体属性的字符串数组的方法,但声明:

if (prop.PropertyType.IsGenericType)

总是错误的。 我已经复制粘贴了代码,所以也许我遗漏了一些东西。我看不到的东西。

我找到了检索所有 属性 名称的解决方案。

private String[] GetProperties(EContent_EcontentFields eContentField)
        {
            List<String> list = new List<String>();
            Type type = eContentField.GetType();
            var properties = type.GetProperties().Where(x => x.MemberType == MemberTypes.Property).Select(x => x.Name);
            foreach (var item in properties)
            {
                if(item != null)
                    list.Add(item.ToString());
            }  

            return list.ToArray();
        }
var result = new List<string>();
var type = eContentField.GetType();
foreach (var prop in type.GetProperties())
{
     result.Add(prop.Name);
 }

 return result.ToArray();
}

如果您对速度感兴趣,这比您的方法快两倍。 Ps:如果将 foreach 更改为 for 循环,速度会快一点,但不会快很多:)