You can use lambda:
Action<MyClass, string> myPropertySetter = (mc, s) => mc.MyProperty = s;
And you have an instance MyClass:
MyClass something = repo.GetMyClass();
myPropertySetter(something, valueFromSomewhere);
Now, following your example:
Dictionary<string, Action<MyClass, string>> setters = new Dictionary<string, Action<MyClass, string>>();
setters.Add("A", Action<MyClass, string> myPropertySetter = (mc, s) => mc.A = s);
[...]
Further:
MyClass something = getFromSomewhere();
foreach (string key in Request.Form.Keys)
{
setters[key](something, Request.Form[key]);
}
source
share