Я искал поисковый запрос, а также искал SO. Существует множество решений, которые все из них (которые я нашел) не завершены. Можете ли вы мне помочь, чтобы установить свойства класса и свойства его вложенного свойства, выбранные lambda
, используя Reflection
?Как установить свойства и свойства вложенного свойства с помощью выражения
public class Parent
{
public class Child
{
public int Id { get; set; }
}
public string Name { get; private set; }
public int Number {get; private set; }
public Child Nested { get; set; }
public Parent()
{
Nested = new Child();
}
public Test Set<TValue>(Expression<Func<???> func, TValue value)
{
// find the property name from expression
// set the property by value
return this;
}
}
и потребитель, я хочу быть в состоянии:
Parent t = new Parent();
t.Set<int>(t => t.Number, 6)
.set<string>(t => t.Name, "something")
.Set<int>(t => t.Nested.Id, 25);
Почему конкретно выражения? Будет ли 't.Set (« Number », 6)' и 't.Set (« Nested.Id », 25)' достаточно? Это, вероятно, проще, и я могу придумать интересные способы сделать это. –
Его ОК. Я могу найти имя участников (через. (Точка) между ними). Можете ли вы предложить свое решение, пожалуйста? –
, прежде чем я это сделаю ... в чем причина, почему вы не можете просто использовать прямой C#? то есть 't.Number = 6; t.Name = "something"; t.Nested.Id = 25; ' –