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
790 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!

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