检查PropertyDescriptor是否具有属性

Omu*_*Omu 9 .net c#

我正在尝试检查属性是否已应用DataMemberAttribute(使用TypeDescriptor)

这就是我现在拥有的:

PropertyDescriptor targetProp = targetProps[i];

var has = argetProp.Attributes.Contains(
Attribute.GetCustomAttribute(typeof(DataMemberAttribute).Assembly,typeof(DataMemberAttribute)));
Run Code Online (Sandbox Code Playgroud)

问题是

Attribute.GetCustomAttribute(typeof(DataMemberAttribute).Assembly,typeof(DataMemberAttribute))
Run Code Online (Sandbox Code Playgroud)

返回null

Dar*_*rov 22

您可以使用LINQ.一系列.OfType<T>().Any()扩展方法可以很好地完成工作:

PropertyDescriptor targetProp = targetProps[i];
bool hasDataMember = targetProp.Attributes.OfType<DataMemberAttribute>().Any();
Run Code Online (Sandbox Code Playgroud)