У меня есть следующий код, который принимает некоторые значения из моего App.config и пытается использовать их для заполнения свойств класса.
foreach (string ReferenceKey in Utilities.CSVToList(ConfigurationManager.AppSettings[source + ":Keys"]))
{
if (ConfigurationManager.AppSettings[ReferenceKey] != null && Incoming_Values.ContainsKey(ConfigurationManager.AppSettings[ReferenceKey]))
{
PropertyInfo info = MyCustomClass.GetType().GetProperty(ReferenceKey.Split(':')[1]);
info.SetValue(MyCustomClass, Incoming_Values[ConfigurationManager.AppSettings[ReferenceKey]]);
}
else
{
return null;
}
}
Проблема, с которой я столкнулся, заключается в том, что, очевидно, все KVP, которые я получаю из файла конфигурации, будут иметь строковый тип, но свойства класса строго типизированы. Я пытаюсь «слабо связать» значения и класс, но у меня проблема, когда свойство не является строкой (например, это datetime, int или даже мой собственный класс).
Кто-нибудь знает, как я с этим справлюсь? Должен ли я построить класс переводчика или что-то в этом роде?
Convert.ChangeType
? - person Lasse V. Karlsen   schedule 15.04.2015