Заданное приведение является недопустимым - 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)));