我有下面的代码,它从我的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都将是字符串类型,但类的属性是强类型。我试图“松散地耦合”值和类,但我有一个问题,该属性不是一个字符串(例如它是一个日期时间或一个int,甚至是我自己的一个类)。
有没有人有任何想法我会如何处理这样的事情?我应该建一个翻译课还是什么?
你有没有看'Convert.ChangeType'? –
我编辑了你的标题。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 –