none
Как получить значения вложенных свойств объекта по их полному пути. RRS feed

  • Вопрос

  • Пример:

    class ClassA
    {
    	public int Id { get; set; }
    	public string Name { get; set; }
    	public ClassB Details { get; set; }
    }
    
    public class ClassB
    {
    	public int Prop1 { get; set; }
    	public string Prop2 { get; set; }
    }

    Вопрос, как имея только входную строку "Details.Prop1" получить значение запрашиваемого свойства?

    public object GetProperty<T>(T obj, string name)
    where T : class
    {
    	throw new NotImplementedException();
    }

    29 декабря 2021 г. 7:14

Все ответы

  • Здравствуйте,

    Возможно как идея:

     public static object GetPropValue(object src, string propName)
     {
         return src.GetType().GetProperty(propName).GetValue(src, null);
     }
    Get property value from string using reflection

    Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение" Мнения, высказанные здесь, являются отражение моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.

    29 декабря 2021 г. 8:35
    Модератор
  • GetProperty() выполняет поиск свойств для типа класса объекта src, она не может выйти на вложенное свойство src.Details.Prop1.

    Я думаю ответ нужно искать где-то здесь:

    using Microsoft.CodeAnalysis.CSharp;
    using Microsoft.CodeAnalysis.CSharp.Scripting;
    using System.Dynamic;

    29 декабря 2021 г. 8:43
  • Возможно, честно сказать не уверен.

    Вот несколько вопросов связанных именно с nested properties, надеюсь помогут:


    Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение" Мнения, высказанные здесь, являются отражение моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.

    29 декабря 2021 г. 14:12
    Модератор