Заданное приведение является недопустимым - C#
Формулировка задачи:
Всем привет.
есть функция
где
В этой функции видно, что по первому ключу он определяет какой лист из configutaion.ModuleConfigs взять, а по второму ключу какой объект вытянуть из листа в configutaion.ModuleConfigs[?].ModuleValues. Так вот когда возвращаемый объект относиться к string, int, enum то все в порядке, а вот когда возвращаемый объект имеет тип bool то мне выдает ошибку "Заданное приведение является недопустимым". В чем может быть проблема?
public T GetObject<T>(string key1, string key2) { T result = default(T); foreach (ModuleConfig z in configuration.ModuleConfigs.Where(p=>p.ModuleName==key1)) { foreach (ObjectConfig p in z.ModuleValues.Where(p=>p.Name==key2)) { result = (T)p.Value; } } return result; }
public class Configuration { public List<ModuleConfig> ModuleConfigs { get; set; } public Configuration() { } public Configuration(bool f = true) { ModuleConfigs = new List<ModuleConfig>(); } public Configuration(List<ModuleConfig> moduleConfigs) { ModuleConfigs = moduleConfigs; } } public class ModuleConfig { public string ModuleName { get; set; } public List<ObjectConfig> ModuleValues { get; set; } public ModuleConfig() { } public ModuleConfig(bool f = true) { ModuleName = ""; ModuleValues = new List<ObjectConfig>(); } public ModuleConfig(string name, List<ObjectConfig> moduleValues) { ModuleName = name; ModuleValues = moduleValues; } } public class ObjectConfig { public string Name { get; set; } public object Value { get; set; } public ObjectConfig() { } public ObjectConfig(string name, object value) { Name = name; Value = value; } }
Решение задачи: «Заданное приведение является недопустимым»
textual
Листинг программы
bool res = Convert.ToBoolean(con.GetObject<string>(key1, key2)));
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д