[英]How to write/read data from object class to txt c#
我有一個需要保存到文件的類。 這個班級看起來像這樣
class GLogInfo
{
public int tmno;
public int smno, seno;
public int vmode;
public int yr, mon, day, hr, min, sec;
public string photo { get { return (tmno == -1) ? "No Photo" : Convert.ToString(tmno); } }
public int enroll { get { return seno; } }
public int machine { get { return smno; } }
public string verify_mode
{
get
{
string attend_status = "";
switch ((vmode >> 8) & 0xFF)
{
case 0: attend_status = "_DutyOn"; break;
case 1: attend_status = "_DutyOff"; break;
}
string antipass = "";
switch ((vmode >> 16) & 0xFFFF)
{
case 1: antipass = "(AP_In)"; break;
case 2: antipass = "(AP_Out)"; break;
}
int vm = vmode & 0xFF;
string str = "--";
switch (vm)
{
case 1: str = "Fp"; break;
case 7: str = "FP+Card+Pwd"; break;
}
if ((1 <= vm && vm <= 7) ||
(30 <= vm && vm <= 34) ||
(51 <= vm && vm <= 53) ||
(101 <= vm && vm <= 103) ||
(151 <= vm && vm <= 153))
{
str = str + attend_status;
}
str += antipass;
return str;
}
}
public string logtime { get { return string.Format("{0:D4}-{1:D2}-{2:D2} {3:D2}:{4:D2}:{5:D2}", yr, mon, day, hr, min, sec); } }
}
使用dll代碼從設備(訪問控制設備)中填充數據類
while (true)
{
GLogInfo gi = new GLogInfo();
vRet = sbxpc.SBXPCDLL.GetGeneralLogData(Program.gMachineNumber,
out gi.tmno,
out gi.seno,
out gi.smno,
out gi.vmode,
out gi.yr,
out gi.mon,
out gi.day,
out gi.hr,
out gi.min,
out gi.sec);
if (!vRet) break;
glogs_.Add(gi);
}
這樣,我可以毫無問題地將數據綁定到DataGridView。 但是我還需要將所有數據保存到一個文件中。 txt或任何格式。 我嘗試使用序列化,但由於我不是C#的專家,所以無法使用。 我需要有關如何將數據寫入/讀取文件的幫助。 另外,盡管我也許有一種方法可以將數據從DataGridView讀取到文件中,但我也無法做到這一點:)。 我比較瘦。
您可以使用Newtonsoft將類序列化為文件。
如果您有GLogInfo
對象(myObj)的實例,則代碼如下所示:
File.WriteAllText(@"c:\temp\somefile.json", JsonConvert.SerializeObject(myObj));
這將序列化您的類中所有具有“獲取”訪問器的公共屬性。
如果您希望忽略某些屬性,可以添加[JsonIgnore]
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.