問題をグーグルで検索し、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);