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!