В настоящее время я использую следующий код для доступа к свойству объекта с помощью отражения:
Dim propInfo As Reflection.PropertyInfo = myType.GetProperty(propName)
Dim objValue As Object = propInfo.GetValue(myObject, Nothing)
У меня есть некоторые проблемы со скоростью, так как этот тип кода вызывается много раз и вызываетнекоторое замедление.
Я изучал использование Refelction.Emit или динамических методов, но я не уверен, как именно их использовать.
Справочная информация: я создаю список подмножествасвойства объекта, связанные затем с некоторой метаинформацией (например, могут ли они быть загружены из базы данных или из xml, если они доступны для редактирования, может ли пользователь их видеть).Это для последующего использования, поэтому мы можем написать такой код:
foreach prop as BaseWrapper in graphNode.NodeProperties
prop.LoadFromDataRow(dr)
next
Приложение интенсивно использует доступ к этому списку.Проблема заключается в том, что при начальной загрузке проекта создается большее количество объектов, которые используют это, поэтому для каждого созданного объекта он циклически повторяет этот код несколько раз.Сначала я попытался добавить каждое свойство в список вручную, но это столкнулось с проблемами, когда не все инициализировалось в нужное время, и с некоторыми другими проблемами.
Если нет другого хорошего пути, то мне, возможно, придется переосмыслить некоторые конструкции и посмотреть, что еще можно сделать, чтобы улучшить производительность.