После написания еще одного шаблонного компоновщика для класса из IDictionary<string, string>
я ищу какую-нибудь библиотеку, которая делает это в декларативном стиле. Вот пример того, что я хочу. Не могли бы вы предложить какие-либо библиотеки, которые позволяют это сделать?
class Person
{
string Name;
int Age;
}
class PersonBuilder
{
public Person Build(IDictionary<string, string> values)
{
// MagicBuilder is what I'm looking for
var magicBuilder = new MagicBuilder<Person>();
// MagicBuilder.AddRequiredField<Type>(key, field)
magicBuilder.AddRequiredField<string>("name", p => p.Name);
// MagicBuilder.AddOptionalField<Type>(key, field, defaultValue)
magicBuilder.AddOptionalField<int>("age", p => p.Age, 0);
return magicBuilder.Build(values);
}
}