我有這樣的與值的文件:訪問變量,編寫一個基於領域的文本文件值變量
[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]?
編輯:
感謝阿提拉,這結束了我的解決方案。我通過文件中的文本找到屬性字段,並從文件中設置值。我也根據屬性的數據類型設置正確的類型。我必須做一些字符串的一些轉換,使它們轉換爲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);
}
你必須使用反射。 –