После написания еще одного шаблонного компоновщика для класса из 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);
    }
}
 
                                                                     
                                                                    