Создание объекта из хеш-таблицы C # - PullRequest
2 голосов
/ 29 ноября 2010

В C # При наличии хеш-таблицы, такой как {id: '1', name: 'foo'}

Как я могу динамически создать экземпляр класса, который имеет те же члены?

public class product {
    public int id;
    public string name;
}

Я знаю, что у меня будут проблемы с кастингом, но я займусь этим позже.Прямо сейчас я не могу даже получить доступ к членам класса, основываясь на ключе хеш-таблицы.Пойду ли я об этом правильно?

Именно так я сейчас и поступаю.

product p = new product();
Type description = typeof(product);
foreach (DictionaryEntry d in productHash)
{
    MemberInfo[] info = description.GetMember((string)d.Key);
    //how do  I access the member of p based on the memberInfo I have?
    //p.<?> = d.Value;
}

Спасибо

1 Ответ

2 голосов
/ 29 ноября 2010

Во-первых, вам нужно получить доступ к члену как к свойству.Затем вы можете запросить у свойства значение конкретного экземпляра:

PropertyInfo property = description.GetProperty((string) d.Key);

object value = property.GetValue(p, null);

Второй параметр - это индекс, который вступит в силу только в том случае, если это свойство indexer .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...