获取标记某个属性的所有属性

那里有class级和财产。 一些属性可以被标记属性(这是我的LocalizedDisplayNameDisplayNameAttributeinheritance)。 这是获取类的所有属性的方法:

 private void FillAttribute() { Type type = typeof (NormDoc); PropertyInfo[] propertyInfos = type.GetProperties(); foreach (var propertyInfo in propertyInfos) { ... } } 

我想添加标记LocalizedDisplayName和列表框中的属性显示值的列表框中的类的属性。 我怎样才能做到这一点?

编辑
这是LocalizedDisplayNameAttribute:

 public class LocalizedDisplayNameAttribute : DisplayNameAttribute { public LocalizedDisplayNameAttribute(string resourceId) : base(GetMessageFromResource(resourceId)) { } private static string GetMessageFromResource(string resourceId) { var test =Thread.CurrentThread.CurrentCulture; ResourceManager manager = new ResourceManager("EArchive.Data.Resources.DataResource", Assembly.GetExecutingAssembly()); return manager.GetString(resourceId); } } 

我想从资源文件中获取string。 谢谢。

这可能是最简单的使用IsDefined

 var properties = type.GetProperties() .Where(prop => prop.IsDefined(typeof(LocalizedDisplayNameAttribute), false)); 

编辑:要获得值本身,你会使用:

 var attributes = (LocalizedDisplayNameAttribute[]) prop.GetCustomAttributes(typeof(LocalizedDisplayNameAttribute), false);