Je suis en train de construire un objet à travers un attribut sur une propriété de classes qui spécifie une colonne dans une ligne de données fournie qui est la valeur de la propriété, comme ci-dessous:C# définir des valeurs de propriété par la réflexion avec des attributs
[StoredDataValue("guid")]
public string Guid { get; protected set; }
[StoredDataValue("PrograGuid")]
public string ProgramGuid { get; protected set; }
dans une méthode build() sur un objet de base, je reçois les valeurs d'attribut définies sur ces propriétés comme
MemberInfo info = GetType();
object[] properties = info.GetCustomAttributes(true);
Cependant, à ce stade, je réalise la limitation de ma connaissance.
Pour commencer, je ne semble pas récupérer les attributs corrects.
Et comment puis-je définir ces propriétés par réflexion, maintenant que j'ai les attributs? Est-ce que je fais/pense quelque chose de fondamentalement incorrect?
Je vais vous donner qu'un test et vous faire savoir, semble logique que – johnc
Attribute.GetCustomAttribute (...) retourne un tableau de System.Attribute et ne peut pas être simplement jeté à l'attribut lui-même. L'exemple montré ne compile même pas encore travailler. Vous devez tester la longueur du tableau pour voir si l'attribut désiré existe et convertir le premier élément en le type requis à la place. –
L'exemple utilise GetCustomAttribute, pas GetCustomAttributes. L'exemple compile lorsque je l'essaie (bien sûr, en changeant le nom de l'attribut). –