csharp 查看对象的所有属性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 查看对象的所有属性相关的知识,希望对你有一定的参考价值。
public static string ReportAllProperties<T>(this T instance) where T : class
{
if (instance == null)
return string.Empty;
var strListType = typeof(List<string>);
var strArrType = typeof(string[]);
var arrayTypes = new[] { strListType, strArrType };
var handledTypes = new[] { typeof(Int32), typeof(String), typeof(DateTime), typeof(double), typeof(decimal), strListType, strArrType };
var validProperties = instance.GetType()
.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
.Where(prop => handledTypes.Contains(prop.PropertyType))
.Where(prop => prop.GetValue(instance, null) != null)
.ToList();
var format = string.Format("{{0,-{0}}} : {{1}}", validProperties.Max(prp => prp.Name.Length));
return string.Join(
Environment.NewLine,
validProperties.Select(prop => string.Format(format,
prop.Name,
(arrayTypes.Contains(prop.PropertyType) ? string.Join(", ", (IEnumerable<string>)prop.GetValue(instance, null))
: prop.GetValue(instance, null)))));
}
以上是关于csharp 查看对象的所有属性的主要内容,如果未能解决你的问题,请参考以下文章
csharp 按属性名称获取对象的属性值
csharp 动态从C#对象获取属性值
csharp 在课堂上获取所有属性
csharp 遍历光线投射所有穿透的对象
csharp 修剪所有对象的字符串。
csharp BetterDefaultModelBinder意味着所有集合属性都被实例化为空集合而不是null。