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; } }
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);
Ändern Sie ihre öffentlichen Variablen:
attrs1[0].MyData = "A New String";
Erstellen Sie eine weitere Instanz, um die Änderung zu demonstrieren:
ASCII[] attrs3 = (ASCII[])typeof(MyClass).GetCustomAttributes(typeof(ASCII), false); MessageBox.Show(attrs3[0].MyData);
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!