using System;
using System.Collections.Generic;
class Foo {
public int Bar { get; set; }
public Foo(Dictionary<string, object> values) {
var propertyInfo = this.GetType().GetProperties();
foreach(var property in propertyInfo) {
if(values.ContainsKey(property.Name)) {
property.SetValue(this, values[property.Name], null);
}
}
}
}
class Program {
public static void Main(String[] args) {
Dictionary<string, object> values = new Dictionary<string, object>();
values.Add("Bar", 42);
Foo foo = new Foo(values);
Console.WriteLine(foo.Bar);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKIApjbGFzcyBGb28gewogICAgcHVibGljIGludCBCYXIgeyBnZXQ7IHNldDsgfQogICAgcHVibGljIEZvbyhEaWN0aW9uYXJ5PHN0cmluZywgb2JqZWN0PiB2YWx1ZXMpIHsKICAgICAgICB2YXIgcHJvcGVydHlJbmZvID0gdGhpcy5HZXRUeXBlKCkuR2V0UHJvcGVydGllcygpOwogICAgICAgIGZvcmVhY2godmFyIHByb3BlcnR5IGluIHByb3BlcnR5SW5mbykgewogICAgICAgICAgICBpZih2YWx1ZXMuQ29udGFpbnNLZXkocHJvcGVydHkuTmFtZSkpIHsKICAgICAgICAgICAgICAgIHByb3BlcnR5LlNldFZhbHVlKHRoaXMsIHZhbHVlc1twcm9wZXJ0eS5OYW1lXSwgbnVsbCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KIApjbGFzcyBQcm9ncmFtIHsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBEaWN0aW9uYXJ5PHN0cmluZywgb2JqZWN0PiB2YWx1ZXMgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIG9iamVjdD4oKTsKICAgICAgICB2YWx1ZXMuQWRkKCJCYXIiLCA0Mik7CiAgICAgICAgRm9vIGZvbyA9IG5ldyBGb28odmFsdWVzKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZShmb28uQmFyKTsKICAgIH0KfQ==