Maison > développement back-end > C++ > Comment puis-je modifier dynamiquement les valeurs des paramètres d'attribut lors de l'exécution en C# ?

Comment puis-je modifier dynamiquement les valeurs des paramètres d'attribut lors de l'exécution en C# ?

Linda Hamilton
Libérer: 2024-12-30 01:27:18
original
826 Les gens l'ont consulté

How Can I Dynamically Change Attribute Parameter Values at Runtime in C#?

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

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 :

  1. Récupérer les instances d'attribut :
ASCII[] attrs1 = (ASCII[])typeof(MyClass).GetCustomAttributes(typeof(ASCII), false);
Copier après la connexion
  1. Modifier la variable publique de l'instance d'attribut :
attrs1[0].MyData = "A New String";
Copier après la connexion
  1. Afficher la valeur modifiée :
MessageBox.Show(attrs1[0].MyData);
Copier après la connexion
  1. Créer une autre instance pour confirmer la modification est local :
ASCII[] attrs3 = (ASCII[])typeof(MyClass).GetCustomAttributes(typeof(ASCII), false);
MessageBox.Show(attrs3[0].MyData);
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!

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