Modification dynamique des paramètres d'attribut
Dans certains scénarios, il peut être nécessaire d'ajuster les paramètres d'attribut pendant l'exécution pour fournir des informations plus précises ou personnalisées . Prenons l'exemple suivant :
public class UserInfo { [Category("change me!")] public int Age { get; set; } [Category("change me!")] public string Name { get; set; } }
Disons que vous disposez d'une classe tierce comme celle ci-dessus et que vous ne pouvez pas modifier son code. Cependant, vous découvrez que le « changez-moi ! » Le nom de la catégorie est inexact et souhaite le mettre à jour dynamiquement.
Heureusement, vous pouvez modifier les valeurs des instances d'attribut au moment de l'exécution en accédant aux objets d'attribut directement par réflexion.
Voici comment :
ASCII[] attrs1 = (ASCII[])typeof(MyClass).GetCustomAttributes(typeof(ASCII), false);
attrs1[0].MyData = "A New String";
MessageBox.Show(attrs1[0].MyData);
ASCII[] attrs3 = (ASCII[])typeof(MyClass).GetCustomAttributes(typeof(ASCII), false); MessageBox.Show(attrs3[0].MyData);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!