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
Susan Sarandonoriginal
2025-01-04 04:22:38398parcourir

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;
    }
}

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!

Déclaration:
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