Maison > développement back-end > C++ > Pouvez-vous modifier les attributs d'exécution .NET de manière dynamique ?

Pouvez-vous modifier les attributs d'exécution .NET de manière dynamique ?

Susan Sarandon
Libérer: 2025-01-04 04:22:38
original
384 Les gens l'ont consulté

Can You Modify .NET Runtime Attributes Dynamically?

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;
    }
}
Copier après la connexion

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);
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal