c#自定义序列化和反序列化简单类

时间:2017-08-30 03:23:59

标签: c# serialization deserialization text-files

我有这个课程

class MyClass{
   int x;
   byte[] arr;
}

我想将其序列化为文本文件,但是要自定义。

我想在写下我想写的x值之前:x值是:x。

并对arr进行一些操作(如每个值上的+1)并移动标签。

然后"价值再次是" X"的价值有一个美好的一天"使用标签

如何将此序列化为txt文件,

如何从txt文件反序列化到MyClass?

例如:x = 4,arr = {1,2,3} txt文件将是

the value of X is: 4
   arr is: 2,3,4
    the value again is:5 have a nice day

我该怎么办? 我不想为该var做特殊的Get属性,因为在我的程序中我使用此Get。

1 个答案:

答案 0 :(得分:1)

序列化与你想要做的不同,但是如果你想要特殊的格式化输出,有些人会覆盖ToString()方法,但你可以创建另一种方法,比如......

    public string textOutput()
    {
        var sb = new StringBuilder();
        sb.AppendFormat("the value of X is: {0}\r\n   arr is: ", x);
        for (var i = 0; i < arr.Length; i++)
            sb.AppendFormat("{0}{1}", i == 0 ? "" : ", ", arr[i]);

        // don't know where your 5 value is coming from though... but place-holdered it
        sb.AppendFormat("\r\n      the value again is: {0} have a nice day", 5);

        return sb.ToString();
    }

并根据需要编写输出。或者您也可以将其创建为自己的getter属性。