获取具有特定属性的属性列表
为了检索拥有标记为非的特定属性的公共属性列表multiple(AllowMultiple 属性设置为 false),常见的方法是循环遍历属性并检查属性的
foreach (var property in t.GetProperties()) { var attributes = property.GetCustomAttributes(typeof(MyAttribute), true); if (attributes.Length == 1) { // Property with custom attribute } }
但是,实现相同结果的优化方法是利用 LINQ 的 where 子句和 Attribute.IsDefined(),如下所示:
var properties = t.GetProperties().Where( property => Attribute.IsDefined(property, typeof(MyAttribute)));
此替代方法无需创建属性实例,从而实现更高效的方法。
以上是如何高效获取具有特定非多重属性的属性列表?的详细内容。更多信息请关注PHP中文网其他相关文章!