Используя отражение для установки свойства свойства объекта

Я использую Apache HTTPClient (http://hc.apache.org/) для вызова Restful Services. Библиотека HTTP Client позволяет, Вы для легкого выполнения добираетесь, сообщение или безотносительно другой операции, в которой Вы нуждаетесь. Если Ваш сервис использует JAXB для привязки xml, можно создать JAXBContext, чтобы сериализировать и десериализовать вводы и выводы из Запроса HTTP.

5
задан bugfixr 9 September 2009 в 22:30
поделиться

1 ответ

В основном разделить его на два доступа к свойствам. Сначала вы получаете свойство myClass1Object , затем устанавливаете свойство value для результата.

Очевидно, вам потребуется возьмите любой формат, в котором у вас есть имя свойства, и разделите его - например, точками. Например, это должно иметь произвольную глубину свойств:

public void SetProperty(object source, string property, object target)
{
    string[] bits = property.Split('.');
    for (int i=0; i < bits.Length - 1; i++)
    {
         PropertyInfo prop = source.GetType().GetProperty(bits[i]);
         source = prop.GetValue(source, null);
    }
    PropertyInfo propertyToSet = source.GetType()
                                       .GetProperty(bits[bits.Length-1]);
    propertyToSet.SetValue(source, target, null);
}

По общему признанию, вы, вероятно, захотите немного больше проверки ошибок, чем это :)

11
ответ дан 13 December 2019 в 05:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: