我如何获得一个类的所有属性的列表?
当前回答
public List<string> GetPropertiesNameOfClass(object pObject)
{
List<string> propertyList = new List<string>();
if (pObject != null)
{
foreach (var prop in pObject.GetType().GetProperties())
{
propertyList.Add(prop.Name);
}
}
return propertyList;
}
这个函数用于获取类属性列表。
其他回答
public List<string> GetPropertiesNameOfClass(object pObject)
{
List<string> propertyList = new List<string>();
if (pObject != null)
{
foreach (var prop in pObject.GetType().GetProperties())
{
propertyList.Add(prop.Name);
}
}
return propertyList;
}
这个函数用于获取类属性列表。
反射;例如:
obj.GetType().GetProperties();
对于一种类型:
typeof(Foo).GetProperties();
例如:
class Foo {
public int A {get;set;}
public string B {get;set;}
}
...
Foo foo = new Foo {A = 1, B = "abc"};
foreach(var prop in foo.GetType().GetProperties()) {
Console.WriteLine("{0}={1}", prop.Name, prop.GetValue(foo, null));
}
以下反馈…
要获取静态属性的值,将null作为GetValue的第一个参数 要查看非公共属性,请使用(例如)GetProperties(BindingFlags)。Public | BindingFlags。NonPublic | BindingFlags.Instance)(返回所有公共/私有实例属性)。
下面的代码将提供类属性/属性/表列的列表
var Properties = typeof(className).GetProperties().Select(x=>x.Name).Tolist();
你可以使用这个系统。使用Type.GetProperties()方法的反射命名空间:
PropertyInfo[] propertyInfos;
propertyInfos = typeof(MyClass).GetProperties(BindingFlags.Public|BindingFlags.Static);
我也面临着这样的要求。
从这次讨论中,我有了另一个想法,
Obj.GetType().GetProperties()[0].Name
这也显示了属性名。
Obj.GetType().GetProperties().Count();
这显示了属性的数量。
谢谢大家。这是一个很好的讨论。
推荐文章
- 如何返回一个文件(FileContentResult)在ASP。净WebAPI
- 如何在使用ASP时更改表名。净身份?
- 在Visual Studio中设置“首选32位”的目的是什么?它实际上是如何工作的?
- 在c#中从URI字符串获取文件名
- 检查SqlDataReader对象中的列名
- 如何将类标记为已弃用?
- c# 8支持。net框架吗?
- Linq-to-Entities Join vs GroupJoin
- 为什么字符串类型的默认值是null而不是空字符串?
- 在list中获取不同值的列表
- 组合框:向项目添加文本和值(无绑定源)
- AutoMapper:“忽略剩下的?”
- 如何为ASP.net/C#应用程序配置文件值中的值添加&号
- 从System.Drawing.Bitmap中加载WPF BitmapImage
- 如何找出一个文件存在于c# / .NET?