Лучший отвечающий
Как получить значения вложенных свойств объекта по их полному пути.

Вопрос
-
Пример:
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
Ответы
-
Возможно, честно сказать не уверен.
Вот несколько вопросов связанных именно с nested properties, надеюсь помогут:
- Get nested property values through reflection C#
- How to get nested properties
- Getting Nested Object Property Value Using Reflection
Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение" Мнения, высказанные здесь, являются отражение моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.
- Помечено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 19 января 2022 г. 17:03
29 декабря 2021 г. 14:12Модератор
Все ответы
-
Здравствуйте,
Возможно как идея:
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;
- Изменено Sergey Korobeynikov (XyloCode) 29 декабря 2021 г. 11:03
29 декабря 2021 г. 8:43 -
Возможно, честно сказать не уверен.
Вот несколько вопросов связанных именно с nested properties, надеюсь помогут:
- Get nested property values through reflection C#
- How to get nested properties
- Getting Nested Object Property Value Using Reflection
Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение" Мнения, высказанные здесь, являются отражение моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.
- Помечено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 19 января 2022 г. 17:03
29 декабря 2021 г. 14:12Модератор