Personnalisation des attributs d'exécution
En développement, des situations surviennent où les attributs doivent être modifiés pendant l'exécution, malgré les limitations imposées par les fournisseurs tiers. Considérons une classe avec des attributs tels que :
public class UserInfo { [Category("change me!")] public int Age { get; set; } [Category("change me!")] public string Name { get; set; } }
Modification des instances au moment de l'exécution
Contrairement aux perceptions, les instances d'attribut peuvent être modifiées au moment de l'exécution. En obtenant les instances d'attribut, nous pouvons apporter des modifications de valeur telles que :
ASCII[] attrs1 = (ASCII[]) typeof(MyClass).GetCustomAttributes(typeof(ASCII), false); attrs1[0].MyData = "A New String"; MessageBox.Show(attrs1[0].MyData);
Préserver les valeurs d'attribut inchangées
Il est essentiel de noter que les invocations ultérieures pour récupérer les instances d'attribut seront ne pas être affecté par la modification du runtime :
ASCII[] attrs3 = (ASCII[]) typeof(MyClass).GetCustomAttributes(typeof(ASCII), false); MessageBox.Show(attrs3[0].MyData); // Original value
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!