(Reflection)PropertyInfo.GetValue and PropertyInfo.SetValue Methods - C#

Узнай цену своей работы

Формулировка задачи:

Доброе время суток! Собственно вопрос: Есть обьект(objA) унаследовавший свойство от интерфейса. А также есть массив(masA) формата: "Имя свойства"(string) - "значение"(типа соответсвующего данному свойству). Нужно установить свойства обьекта "objA" соответственно из массива "masA" Делаю так(код пишу по памяти, надеюсь понятен смысл):
foreach (Value V in мasA)
            {
                objA.GetType().GetProperty(V[0]).SetValue(objA, V[1]);
            }
!!! Всё отлично работает, но как быть если "значение" -- содержит ссылку на другой обьект??? Также если вероятность того, что свойсто objA уже установлено, в этом случаи установно на новое значение не трубуется,я пытаюсь взять значение этого поля и проверить, но тут столкниулся с проблемой:
object objB = new object();
objA.GetType().GetProperty(V[0]).GetValue(objB, null);
но тут выскакивает исключение, мол objB должен быть определённого типа (TargetException The object does not match the target type, or a property is an instance property but obj is null.) !!!Гуру, помогите, как это реализовать??? P.S. Как мог объяснил задачу, если что не понятно спрашивайте. Спасибо.

Решение задачи: «(Reflection)PropertyInfo.GetValue and PropertyInfo.SetValue Methods»

textual
Листинг программы
objA.GetType().GetProperty(V[0]).PropertyType

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5
Похожие ответы