2014-09-25 59 views
-1

我正在使用PropertyInfo方法獲取使用fyneworks jQuery多文件上傳插件上傳的附件的大小。這一切都很好,但我需要得到我的財產的真實價值。使用PropertyInfo類獲取屬性的實際值

PropertyInfo sizeProperty = aType.GetProperty("Size"); 
sizeProperty.SetValue(attachmentItem, fileData.Length, null); 

爲了簡單說,我想寫控制檯:

Console.WriteLine("FILE SIZE: " + sizeProperty.ToString()); 

上面的代碼返回此:文件大小:系統我用下面的代碼中設置附件的文件大小。可空[1] [System.Int32]大小。 這不是很有用。

附註 - 儘管不太理想,但我必須使用反射,因爲我受到了所給予的東西的限制。理想情況下,我想直接訪問屬性,但我無法。

+4

爲什麼使用反射而不是隻訪問屬性? – mason 2014-09-25 15:56:32

+4

如果它具有'SetValue',那麼它可能也有'G ...' – 2014-09-25 15:58:03

回答

1

PropertyInfo表示屬性與屬性類型有關的屬性和元數據,而不是實例。當你想用它相對於一個實例,你必須使用GetValueSetValue

在你的情況,GetValue會給你正確的大小,如果你通過它的實例,但隨後@mason問題真的很有趣:爲什麼不直接訪問實例的屬性?