我有一个具有如下值的文件:
[Params]
Version=106
Monitor=0
SMode=10000000
Date=20120519
在我的程序集中,我有与这些字段相对应的属性,如下所示:
public static string Version { get; set; }
public static string Monitor { get; set; }
public static string SMode { get; set; }
public static DateTime Date { get; set; }
我正在像这样遍历文件(_params 是一个字符串列表,其中包含文件中 [Params] 部分的行):
foreach (string s in _params)
{
string[] values = s.Split('=');
}
如何找到具有值 [0] 的变量并使用值 [1] 设置它?
编辑:
感谢 Attila,这最终成为了我的解决方案。我通过文件中的文本找到属性字段,并从文件中设置值。我还根据属性的数据类型设置了正确的类型。我必须对一些字符串进行一些转换,以使它们转换为 DateTime 数据类型:
foreach (string s in _params)
{
string[] values = s.Split('=');
object myObject = values[0];
object myValue = values[1];
if (myObject.ToString() == "Date")
myValue = ConvertDateStringToDateTime(values[1]);
if (myObject.ToString() == "StartTime")
myValue = ConvertStartTimeStringToDateTime(values[1]);
if (myObject.ToString() == "Length")
myValue = ConvertLengthStringToTimeSpan(values[1]);
var type = typeof(HrmParams);
var field = type.GetProperty(myObject.ToString());
myValue = Convert.ChangeType(myValue, field.PropertyType);
field.SetValue(myObject, myValue, null);
}