Свойство класса для каждого - PullRequest
1 голос
/ 15 июня 2010

У меня проблема из-за перебора свойств класса.

У меня есть первый класс:

class Item
  private _UIN as integer = 0
  private _Name as string = ""
  private _Category as ItemCategory = new ItemCategory()

  public Property UIN() as integer
  public property Name() as string
  public property Category() as ItemCategory 

end class

Теперь, когда я перебираю свойства класса из следующего кода

Dim AllProps As System.Reflection.PropertyInfo()
Dim PropA As System.Reflection.PropertyInfo
dim ObjA as object

AllProps = new Item().getType().getProperties()
for each propA in AllProps
   ObjA = PropA.GetValue(myObj, New Object() {})
   debug.write ObjA.GetType().Name
next

Я получаю UIN, Name, ItemCategory, но я ожидал UIN, Name и Category.

Мне немного непонятно, и не знаю, почему это происходит? Что я должен сделать, чтобы исправить это?

1 Ответ

1 голос
/ 15 июня 2010

Я получаю UIN, Name, ItemCategory

Это не имеет смысла. Вы извлекаете имена базового типа свойства, вы должны были получить что-то вроде System.String, System.Int32 и ItemCategory.

Если это свойство names , которое вы ищете, вы можете просто использовать PropertyInfo.Name, в вашем случае:

AllProps = new Item().getType().getProperties()
for each propA in AllProps
   debug.write propA.Name
next
...