Heim > Backend-Entwicklung > C++ > Können Sie Attributeigenschaften nach dem Laden der Assembly dynamisch ändern?

Können Sie Attributeigenschaften nach dem Laden der Assembly dynamisch ändern?

Mary-Kate Olsen
Freigeben: 2025-01-01 00:13:10
Original
180 Leute haben es durchsucht

Can You Dynamically Change Attribute Properties After Assembly Load?

Attributeigenschaften dynamisch ändern

Ist es möglich, Attributparameter zu ändern, nachdem eine Baugruppe geladen wurde? Betrachten Sie die folgende Klasse:

public class UserInfo
{
    [Category("change me!")]
    public int Age
    {
        get;
        set;
    }
    [Category("change me!")]
    public string Name
    {
        get;
        set;
    }
}
Nach dem Login kopieren

Obwohl es sich um eine Klasse eines Drittanbieters handelt (die Codeänderungen verbietet), möchten Sie den Kategorienamen „Ändere mich“ ändern, wenn Sie eine Instanz an ein Eigenschaftenraster binden.

Lösung:

Attributinstanzwerte können zur Laufzeit dynamisch geändert werden. Erhalten Sie die Attributinstanz:

ASCII[] attrs1 = (ASCII[])typeof(MyClass).GetCustomAttributes(typeof(ASCII), false);
Nach dem Login kopieren

Ändern Sie ihre öffentlichen Variablen:

attrs1[0].MyData = "A New String";
Nach dem Login kopieren

Erstellen Sie eine weitere Instanz, um die Änderung zu demonstrieren:

ASCII[] attrs3 = (ASCII[])typeof(MyClass).GetCustomAttributes(typeof(ASCII), false);
MessageBox.Show(attrs3[0].MyData);
Nach dem Login kopieren

Referenz: http:/ /www.vsj.co.uk/articles/display.asp?id=713

Das obige ist der detaillierte Inhalt vonKönnen Sie Attributeigenschaften nach dem Laden der Assembly dynamisch ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage