【问题标题】:How to write/read data from object class to txt c#如何将数据从对象类写入/读取到txt c#
【发布时间】:2019-08-15 10:12:26
【问题描述】:

我有一个需要保存到文件的类。类是这样的

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 读取到文件,但我也不能这样做:)。我比较瘦。

【问题讨论】:

    标签: c# list serialization datagridview


    【解决方案1】:

    您可以使用Newtonsoft 将类序列化为文件。

    如果您有 GLogInfo 对象 (myObj) 的实例,则代码如下所示:

    File.WriteAllText(@"c:\temp\somefile.json", JsonConvert.SerializeObject(myObj));
    

    这将序列化您的类中具有“get”访问器的所有公共属性。

    如果您想忽略某些属性,可以添加[JsonIgnore]

    【讨论】:

    • 非常感谢。我能够将数据获取到 json 文件。我也尝试过使用文本,但它提供了 txt 格式的 json 格式(显然它必须这样做。只是把它弄乱了)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多