c# - 如何将数据从对象类写入/读取到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));
这将序列化您的类中具有“get”访问器的所有公共属性。
如果您想忽略某些属性,可以添加[JsonIgnore]
.
推荐阅读
- c++ - ADL 在 constexpr 函数中不起作用(仅限 clang)
- r - ggplot2中同一分组箱线图上的多个变量*具有不同的选项*?
- c - 如何在运行它的程序仍在运行时清除文件数据的内存
- pandas - 熊猫 - 按出现顺序排列
- php - 指向外部样式表的链接在 php 中未按预期工作包括
- c++ - 如何从 LCP 数组和 Suffix 数组构造 Suffix 树
- python - 加载保存的 cookie 后页面未登录
- wordpress - 在生产服务器上更改 .htaccess 文件时出现错误 500
- javascript - 悬停在子导航可见性上
- python-3.x - 如何使用 Pandas 从一天中删除 15 分钟的数据