Heim >Backend-Entwicklung >C++ >Können Sie .NET-Laufzeitattribute dynamisch ändern?
Anpassung von Laufzeitattributen
In der Entwicklung kommt es zu Situationen, in denen Attribute während der Laufzeit geändert werden müssen, trotz Einschränkungen durch Drittanbieter. Betrachten wir eine Klasse mit Attributen wie:
public class UserInfo { [Category("change me!")] public int Age { get; set; } [Category("change me!")] public string Name { get; set; } }
Ändern von Instanzen zur Laufzeit
Entgegen der Annahme können Attributinstanzen zur Laufzeit geändert werden. Indem wir die Attributinstanzen abrufen, können wir Wertänderungen wie folgt vornehmen:
ASCII[] attrs1 = (ASCII[]) typeof(MyClass).GetCustomAttributes(typeof(ASCII), false); attrs1[0].MyData = "A New String"; MessageBox.Show(attrs1[0].MyData);
Unveränderte Attributwerte beibehalten
Es ist wichtig zu beachten, dass dies bei nachfolgenden Aufrufen zum Abrufen von Attributinstanzen der Fall ist von der Laufzeitänderung nicht betroffen sein:
ASCII[] attrs3 = (ASCII[]) typeof(MyClass).GetCustomAttributes(typeof(ASCII), false); MessageBox.Show(attrs3[0].MyData); // Original value
Das obige ist der detaillierte Inhalt vonKönnen Sie .NET-Laufzeitattribute dynamisch ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!