Применить хеш-таблицу к свойствам объекта? - PullRequest
0 голосов
/ 17 ноября 2018

После продолжительного поиска я спрашиваю: есть ли способ «применить» хеш-таблицу к свойствам объекта? Например, если у меня есть класс:

public class MyClass
{
    public string PropertyOne {get;set;}
    public int PropertyTwo {get;set;}
}

Теперь, если у меня есть Hashtable из:

var table = new Hashtable {
    { "PropertyOne", "My string"},
    { "PropertyTwo", 4 }
};

Могу ли я подключить таблицу к экземпляру класса, чтобы Object.PropertyOne стал "Моей строкой" и т. Д., Не разбирая ее самостоятельно?

1 Ответ

0 голосов
/ 17 ноября 2018

То, на что вы ссылаетесь, часто называют смесью между «автоконверсией» и «десериализацией». В этом конкретном случае это легче всего достигается с помощью нерекурсивного отражения.

MyClass mine = new MyClass();
table.Cast<DictionaryEntry>()
    .ToList()
    .ForEach((entry) => {
        var field = mine.GetType().getProperty((string)entry.Key);
        field.SetValue(mine, entry.Value);
    }); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...