Tengo clase y propiedades ahí. Algunas propiedades se pueden marcar como atributo (es mi LocalizedDisplayNameherencia DisplayNameAttribute). Este es el método para obtener todas las propiedades de la clase:
private void FillAttribute()
{
Type type = typeof (NormDoc);
PropertyInfo[] propertyInfos = type.GetProperties();
foreach (var propertyInfo in propertyInfos)
{
...
}
}
Quiero agregar propiedades de clase en el cuadro de lista que marcó LocalizedDisplayNamey muestra el valor del atributo en el cuadro de lista. ¿Cómo puedo hacer esto?
EDITAR
Esto es 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);
}
}
Quiero obtener una cadena del archivo de recursos. Gracias.
c#
reflection
user348173
fuente
fuente

ToString()? ¿Puede editar su pregunta para agregar algún código para los atributos personalizados que está aplicando y especificar qué datos desea obtener?Respuestas:
Probablemente sea más fácil de usar
IsDefined:var properties = type.GetProperties() .Where(prop => prop.IsDefined(typeof(LocalizedDisplayNameAttribute), false));Para obtener los valores en sí mismos, usaría:
var attributes = (LocalizedDisplayNameAttribute[]) prop.GetCustomAttributes(typeof(LocalizedDisplayNameAttribute), false);fuente
IEnumerable<PropertyInfo>aquí :) Útil si la persona que ve esta respuesta no está familiarizada con Linq o Reflections.