給定一個類的實例我想在運行時設置屬性的屬性。查找類的實例的屬性
所以我嘗試了這一點,但據我可以告訴這發現類的屬性不是實例,所以我對屬性屬性所做的任何更改都沒有效果。
var properties = myObject.GetType().GetProperties();
foreach (object prop in properties)
{
var attribute =prop.GetCustomAttributes(typeof(MyAttribute), true)[0];
//attribute.MyProp do some stuff
}
如果我嘗試使用下面的類型描述符,則無法獲取屬性上的屬性。
var myObject= (MyClass) object;
PropertyDescriptorCollection props = TypeDescriptor.GetProperties(myObject);
//There is no props[0].GetCustomAttributes(
這是行不通的。屬性應該是不可變的。 – SLaks 2010-06-08 16:05:35
屬性與代碼元素相關聯,而不與該代碼元素的運行時表示相關聯。 (順便說一句,TypeDescriptor有一個GetAttributes方法,但仍然基於類型,而不是在一個實例) – SWeko 2010-06-08 17:03:52