動態變更屬性參數
是否可以在執行時修改屬性參數並不是立即顯而易見的。例如,考慮第三方供應商提供的以下類別:
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";
顯示修改後的value:
MessageBox.Show(attrs1[0].MyData);
建立一個新的屬性實例以驗證原始值是否不變:
ASCII[] attrs3=(ASCII[]) typeof(MyClass).GetCustomAttributes(typeof(ASCII), false); MessageBox.Show(attrs3[0].MyData);
這示範了以下功能:在運行時動態調整屬性參數。
以上是屬性參數可以在運行時動態變更嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!