Estoy tratando de construir un objeto a través de un atributo en una propiedad clases que especifica una columna de una fila de datos suministrada que es el valor de la propiedad, de la siguiente manera:C establecer valores de propiedades a través de la reflexión con los atributos #
[StoredDataValue("guid")]
public string Guid { get; protected set; }
[StoredDataValue("PrograGuid")]
public string ProgramGuid { get; protected set; }
en un método de construcción() en un objeto de base, estoy consiguiendo los valores de los atributos establecidos en estas propiedades como
MemberInfo info = GetType();
object[] properties = info.GetCustomAttributes(true);
Sin embargo, en este momento me estoy dando cuenta de la limitación de mis conocimientos.
Para empezar, no parece estar recuperando los atributos correctos.
¿Y cómo configuro estas propiedades mediante la reflexión, ahora que tengo los atributos? ¿Estoy haciendo/pensando algo fundamentalmente incorrecto?
Haré una prueba y le dejaré saber, aunque parece lógico – johnc
Attribute.GetCustomAttribute (...) devuelve una matriz de System.Attribute y no se puede simplemente convertir al atributo en sí. El ejemplo que se muestra ni siquiera compila ni mucho menos funciona. Debe probar la longitud de la matriz para ver si existe el atributo deseado y, en su lugar, convertir el primer elemento al tipo requerido. –
El ejemplo usa GetCustomAttribute, no GetCustomAttributes. El ejemplo se compila cuando lo intento (por supuesto, cambiar el nombre del atributo). –