使用PropertyInfo类获取属性的实际值

时间:2014-09-25 15:54:24

标签: c# propertyinfo

我正在使用PropertyInfo方法来获取我使用fyneworks jQuery多文件上传插件上传的附件的大小。一切正常,但我需要获得我的财产的真实价值。我使用以下代码设置附件的文件大小:

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

为简单起见,我想写信给控制台:

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

上面的代码返回: FILE SIZE:System.Nullable`1 [System.Int32] Size。 这不是很有用。

旁注 - 虽然不理想,但我必须使用反射,因为我被赋予了我的内容。理想情况下,我想直接访问属性,但我无法访问。

1 个答案:

答案 0 :(得分:1)

PropertyInfo表示属性的属性和元数据,与类型有关,而不是实例。如果要将其用于实例,则必须使用GetValueSetValue

在你的情况下,GetValue如果你将实例传递给它会给你正确的大小,但是@mason问题真的很有趣:为什么不直接访问实例的属性?