キーがクラスのプロパティの名前を表す文字列であり、値がプロパティに割り当てたい値であるディクショナリがあります。Dictionary アイテムが参照しているプロパティを特定しましたが、そのプロパティを実際に設定する方法や、可能なすべてのプロパティを含むばかげた switch ステートメントを使用せずに適切なメソッドを呼び出す方法がわかりません。これを行う効率的な方法はありますか?UserConfiguration クラスを変更したり、拡張したりすることはできません。
これが私がこれまでに持っているものです:
public class Class1
{
public Dictionary<string, string> PDictionary = new Dictionary<string, string>
{
{"UserName", "Steve"},
{"Location", "Over There Somewhere"},
{"Color", "Mellow Yellow"},
{"Password", "ILikeCheese"}
};
public void SomeMethod()
{
foreach (var prop in PDictionary)
{
UserConfiguration.Property property;
Enum.TryParse(prop.Key, out property);
//Set appropriate property or call appropriate method...
}
}
}
public class UserConfiguration
{
public enum Property
{
UserName,
Location,
Color,
Password
}
public string UserName { get; set; }
public string Location { get; set; }
public string Color { get; set; }
public string Password { get; private set; }
public void SetPassword(string password)
{
Password = password;
}
}
誰か良いアイデアはありますか?