C#typeof("对象变量获取类型")

时间:2017-02-24 09:30:06

标签: c# entity-framework

我有一个类,它具有object类型的属性,可以获取Entity Framework表的值。

以下是该类的属性:

public string EntityName
{
   get { return _entityName; }
   set { _entityName = value; }
}
private string _entityName;

public object EntityType
{
   get { return _entityType; }
   set { _entityType = value; }
}
private object _entityType;

对象可以是任何表,取决于它何时被初始化。 接下来,我想要对象中表的所有列名。 这是应该给我的代码:

    public ObservableCollection<string> ReadColumnNames()
    {
        IEnumerable<string> names = typeof("Problem Here").GetProperties()
                    .Select(property => property.Name)
                    .ToList();

        ObservableCollection<string> observableNames = new ObservableCollection<string>();

        foreach (string name in names)
        {
            observableNames.Add(name);
        }

        return observableNames;
    }

问题是typeof()方法需要一个类型,类型可以是任何表。如果我创建一个Type变量,即 输入myType = EntityDetail.GetType() typeof()否认它,因为它是变量而不是类型。

关于我能做什么的任何建议?

如果有可以分享的话,我不知道是否有更好的方法可以做到这一点。

提前致谢。

1 个答案:

答案 0 :(得分:3)

这可能吗?

IEnumerable<string> names = typeof(EntityDetail).GetProperties()
    .Select(property => property.Name)
    .ToList();

请注意,这需要using System.Linq

typeof将期望编译 -time类型。如果您在编译时不知道实际类型,请改用myInstance.GetType()代替typeof(...)