У меня есть два класса - Клиент и Страна. У клиента есть свойство, называемое HomeCountry, которое я украсил пользовательским атрибутом под названием «Lookup» и принимает строковый параметр «Страна». Цель состоит в том, что, когда я использую класс Customer, элемент в HomeCountry должен существовать в классе Country (который является списком).C# Общий параметр из строковой переменной
Я использую отражение для повторения класса Customer, он находит атрибут, и я хочу, чтобы он проверял значение в списке элементов страны. До сих пор у меня есть:
foreach (PropertyInfo _pi in object.GetType().GetProperties()) {
IEnumerable<Attribute> _attrs = _pi.GetCustomAttributes();
foreach (Attribute _a in _attrs) {
Object obj = Activator.CreateInstance(_type, null);
// what goes here?
}
}
У меня есть метод:
public T Populate<T>(params string[] _parameters)
Я думаю, что я хочу сделать
List<obj> v = populate<obj>();
или
List<typeof(obj)> v = populate<typeof(obj)>();
но, очевидно, ничего не работает! Кто-нибудь может мне помочь ?
Благодаря
Рассмотрите возможность использования перечисления для своих стран, что позволит вам не делать такой код с отражением. Вы делаете простую вещь очень сложным образом. –
Я не уверен, какой компонент вашего кода действительно содержит список, который вы упомянули. Просьба привести пример того, как вы хотели бы использовать эти классы. –
Если вы перейдете по маршруту перечисления, убедитесь, что вы правильно проверяете ввод. Любое натуральное число будет анализировать на перечисление (при условии, что оно соответствует унаследованному типу номера). – TyCobb