当前位置: 首页 > 编程语言 > C#

使用反射获取类型分享

时间:2023-04-10 11:25:47 C#

使用反射获取类型我正在尝试使用反射获取类属性的类型,但它返回唯一的RuntimePropertyInfo-作为类型的名称。我有对象MyObjectactualData-其中包含属性-“name”作为字符串,“Item”作为我的类型DatumType当我调试时,我可以看到,actualData有2个属性,第一个是String类型,第二个是DatumType,但是当我使用它时:stringtypeName=actualData.getType().getProperty("Item").getType().Name-它返回RuntimePropertyInfo,而不是DatumType你能看到我做错了什么吗?我正在使用C#-.Net4.0。太感谢了!您将获得getProperty()返回类型的PropertyInfo对象。试试stringtypeName=actualData.getType().getProperty("Item").PropertyType.Name;如果想通过PropertyInfo对象为对象当前赋值的类型,可以调用:stringtypeName=actualData.getType()。getProperty("Item").GetValue(actualData,null).GetType().Name;但在这种情况下,您也可以简单地调用:stringtypeName=actualData.Item.GetType().Name;GetType()总是返回当前对象的类型,而不是指向的对象。在您的情况下,请考虑使用stringtypeName=actualData.getType().getProperty("Item").PropertyType.NameactualData.getType().getProperty("Item")检索PropertyInfo类型的内容。如果您随后询问其类型:actualData.getType().getProperty("Item").getType()您将得到所观察到的结果。我怀疑这最后一个getType()是没有必要的。编辑:有人投票给这个答案,恕我直言,这是不公平的。问题是“你能看出我做错了什么吗?”getType太远的答案是正确的。如果提问者知道他做错了什么,很容易在PropertyInfo中查找PropertyType。对于赞成这个答案的人:请至少在下次投票时发表评论。Stackoverflow只有在我们互相学习而不只是抨击周围的每个人时才有意义。以上就是C#学习教程:使用反射获取类型共享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: