我有一个“员工”类,它有以下成员:
//[membername,type]
[Name,string]
[DOB,DateTime]
[DateOfHire,DateTime]
[TerminationDate,DateTime?]
[AddressChanges,List<string>]
在这里,我需要反映并获取除集合类型之外的所有属性。
在此示例中,除了 AddressChanges,我需要获取所有成员。
谢谢。
我有一个“员工”类,它有以下成员:
//[membername,type]
[Name,string]
[DOB,DateTime]
[DateOfHire,DateTime]
[TerminationDate,DateTime?]
[AddressChanges,List<string>]
在这里,我需要反映并获取除集合类型之外的所有属性。
在此示例中,除了 AddressChanges,我需要获取所有成员。
谢谢。
根据你所说的“收藏”的意思,这样的事情会起作用:
var notCollectionProperties =
typeof(Employee)
.GetProperties(BindingFlags.Public|BindingFlags.Instance)
.Where(prop => !typeof(ICollection).IsAssignableFrom(prop.PropertyType));
更一般地,您可能想要使用IEnumerable
而不是ICollection
.
使用反射枚举属性并排除具有集合类型的属性。例如:
Type myType = typeof(TargetClass);
foreach(PropertyInfo propertyInfo in myType.GetProperties())
{
if(propertyInfo.PropertyType is ...)
{
// Handle cases
}
}