Tag: 属性信息

PropertyInfo:属性索引器?

我有以下代码: PropertyInfo[] originalProperties = myType.GetProperties(); 我想从originalProperties排除所有索引器(myVar [“key”]显示为名为“Item”的属性)。 什么是正确的方法? 排除propInfo.Name == "Item"不是选项的所有属性。

使用reflection获取属性的string名称

这里有很多reflection的例子可以让你得到: 1.class级中的所有属性 2.一个单一的属性,提供你知道的string名称 有没有一种方法(使用reflection,TypeDescriptor,或其他)来获取在运行时类中的属性的string名称,只要我有一个类和属性的实例? 编辑我知道,我可以很容易地获得在一个类中使用reflection的所有属性,然后获取每个属性的名称。 我要求的是一个函数,给我一个财产的名称,只要我通过它的财产的实例。 换句话说,如何从PropertyInfo []数组中find属性,并从Class.GetType()。GetProperty(myProperty)返回给我,以便我可以从中获取PropertyInfo.Name?

有没有办法使用reflection设置结构实例的属性?

我试图写一些代码,在结构上设置一个属性(重要的是它是一个结构上的属性),它是失败的: System.Drawing.Rectangle rectangle = new System.Drawing.Rectangle(); PropertyInfo propertyInfo = typeof(System.Drawing.Rectangle).GetProperty("Height"); propertyInfo.SetValue(rectangle, 5, null); 高度值(由debugging器报告)永远不会被设置为任何值 – 它保持默认值0。 之前我已经做了大量的关于类的反思,而且这个工作正常。 另外,我知道在处理结构时,如果设置一个字段,则需要使用FieldInfo.SetValueDirect,但是我不知道PropertyInfo的等价物。

通过使用string值进行reflection来设置属性

我想通过Reflection来设置一个对象的属性,其值为stringtypes。 所以,举个例子,假设我有一个Ship类, Latitude属性是double 。 这是我想要做的: Ship ship = new Ship(); string value = "5.5"; PropertyInfo propertyInfo = ship.GetType().GetProperty("Latitude"); propertyInfo.SetValue(ship, value, null); 就这样,这将抛出一个ArgumentException : “System.String”types的对象不能转换为“System.Double”types。 如何根据propertyInfo将值转换为正确的types?

反思 – 获取属性的属性名称和值

我有一个类,让我们叫它名为名为属性书。 有了这个属性,我有一个相关的属性。 public class Book { [Author("AuthorName")] public string Name { get; private set; } } 在我的主要方法中,我使用reflection,并希望获得每个属性的每个属性的键值对。 所以在这个例子中,我期望看到“作者”的属性名称和“AuthorName”的属性值。 问题:如何使用Reflection在我的属性上获取属性名称和值?