運行時屬性自訂
在開發過程中,儘管第三方供應商施加了限制,但仍會出現需要在運行時修改屬性的情況。考慮一個具有以下屬性的類別:
public class UserInfo { [Category("change me!")] public int Age { get; set; } [Category("change me!")] public string Name { get; set; } }
在運行時修改實例
與感知相反,屬性實例可以在運行時修改。透過取得屬性實例,我們可以進行值修改,例如:
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); // Original value
以上是可以動態修改 .NET 執行時期屬性嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!