using System;
using System.Linq;
using System.Collections.Generic;
public class SettingsEntry
{
public string Name{get; set; }
public object Value {get; set; }
}
public class Settings : List<SettingsEntry>
{
public object this[string name]
{
get { return this.SingleOrDefault((entry) => entry.Name.Equals(name))?.Value; }
}
}
public class Test
{
public static void Main()
{
Settings settings = new Settings()
{
new SettingsEntry()
{
Name = "ServiceUrl",
Value = "http://myhost/myservice.asmx"
},
new SettingsEntry()
{
Name = "ServiceTimeout",
Value = 10000
}
};
Console.WriteLine(settings["ServiceUrl"]);
Console.WriteLine(settings["ServiceTimeout"]);
Console.WriteLine(settings["Bla"]);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7CgpwdWJsaWMgY2xhc3MgU2V0dGluZ3NFbnRyeQp7CiAgIHB1YmxpYyBzdHJpbmcgTmFtZXtnZXQ7IHNldDsgfQogICBwdWJsaWMgb2JqZWN0IFZhbHVlIHtnZXQ7IHNldDsgfQp9CgpwdWJsaWMgY2xhc3MgU2V0dGluZ3MgOiBMaXN0PFNldHRpbmdzRW50cnk+CnsKICAgIHB1YmxpYyBvYmplY3QgdGhpc1tzdHJpbmcgbmFtZV0KICAgIHsKICAgICAgIGdldCB7IHJldHVybiB0aGlzLlNpbmdsZU9yRGVmYXVsdCgoZW50cnkpID0+IGVudHJ5Lk5hbWUuRXF1YWxzKG5hbWUpKT8uVmFsdWU7IH0KICAgIH0KfQoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCVNldHRpbmdzIHNldHRpbmdzID0gbmV3IFNldHRpbmdzKCkKCQl7CgkJCW5ldyBTZXR0aW5nc0VudHJ5KCkKCQkJewoJCQkJTmFtZSA9ICJTZXJ2aWNlVXJsIiwKCQkJCVZhbHVlID0gImh0dHA6Ly9teWhvc3QvbXlzZXJ2aWNlLmFzbXgiCgkJCX0sCgkJCW5ldyBTZXR0aW5nc0VudHJ5KCkKCQkJewoJCQkJTmFtZSA9ICJTZXJ2aWNlVGltZW91dCIsCgkJCQlWYWx1ZSA9IDEwMDAwCgkJCX0KCQl9OwoKCQlDb25zb2xlLldyaXRlTGluZShzZXR0aW5nc1siU2VydmljZVVybCJdKTsKCQlDb25zb2xlLldyaXRlTGluZShzZXR0aW5nc1siU2VydmljZVRpbWVvdXQiXSk7CgkJQ29uc29sZS5Xcml0ZUxpbmUoc2V0dGluZ3NbIkJsYSJdKTsKCX0KfQ==