Heim >Backend-Entwicklung >C++ >Wie kann ich Attributparameterwerte zur Laufzeit in C# dynamisch ändern?
Dynamische Änderung von Attributparametern
In bestimmten Szenarien kann es notwendig sein, Attributparameter während der Laufzeit anzupassen, um genauere oder individuellere Informationen bereitzustellen . Betrachten Sie das folgende Beispiel:
public class UserInfo { [Category("change me!")] public int Age { get; set; } [Category("change me!")] public string Name { get; set; } }
Angenommen, Sie haben eine Drittanbieterklasse wie die obige und können deren Code nicht ändern. Sie entdecken jedoch, dass das „Ändere mich!“ Der Kategoriename ist ungenau und Sie möchten ihn dynamisch aktualisieren.
Glücklicherweise können Sie Attributinstanzwerte zur Laufzeit ändern, indem Sie direkt über Reflektion auf die Attributobjekte zugreifen.
So geht's:
ASCII[] attrs1 = (ASCII[])typeof(MyClass).GetCustomAttributes(typeof(ASCII), false);
attrs1[0].MyData = "A New String";
MessageBox.Show(attrs1[0].MyData);
ASCII[] attrs3 = (ASCII[])typeof(MyClass).GetCustomAttributes(typeof(ASCII), false); MessageBox.Show(attrs3[0].MyData);
Das obige ist der detaillierte Inhalt vonWie kann ich Attributparameterwerte zur Laufzeit in C# dynamisch ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!