采用json文件来序列化和反序列化

在同样的项目中,采用了json文件来序列化和反序列化重要的参数。
下图是程序的结构,可以看到序列化和反序列化在Common\ProgramParam.cs中
在这里插入图片描述

     public class ProgramParam
	{
		public string VisionInterfaceName;      // 视觉接口名
		public string VisionDeviceName;         // 视觉设备名
		public string VisionCameraType;         // 视觉设备类型
		public string SerialName;   // COM
		public int BaudRate;        // 波特率
		public int DataBit;         // 数据位
		public string CheckBit;     // 校验位
		public string StopBit;      // 停止位
		public bool IsASCII;        // ASCII格式
		//Find_Nail配置参数:
		public int UpLeftX;         //左上角坐标X
        public int UpLeftY;         //左上角坐标Y
        public int DownRightX;      //右下角坐标X
        public int DownRightY;      //右下角坐标Y
		public int GrayValue;       //灰度值
        public int AreaFrom;        //面积起始值
        public int AreaTo;          //面积终止值
        public double Crevice;      //钉子上的缝隙宽度值

		private const string SavePath = @"../config/ProgramParam.json";

可以看到这些重要的参数,以及json文件存储的路径。

        public ProgramParam() { }

		[JsonConstructor]
		public ProgramParam(string visionInterfaceName, string visionDeviceName,
			                string serialName, int baudRate, int dataBit,
			                string checkBit, string stopBit, bool isAscii,
							int upLeftX, int upLeftY, int downRightX, int downRightY,
							int grayValue, int areaFrom, int areaTo, double crevice)
		{
			VisionInterfaceName = visionInterfaceName;
			VisionDeviceName = visionDeviceName;
			SerialName = serialName;
			BaudRate = baudRate;
			DataBit = dataBit;
			CheckBit = checkBit;
			StopBit = stopBit;
			IsASCII = isAscii;
			UpLeftX = upLeftX;
			UpLeftY = upLeftY;
			DownRightX = downRightX;
			DownRightY = downRightY;
			GrayValue = grayValue;
			AreaFrom = areaFrom;
			AreaTo = areaTo;
			Crevice = crevice;
		}

在构造函数中有赋值操作。

        // 序列化
		public void Save()
		{
			using (var file = File.CreateText(SavePath))
			{
				var serializer = new JsonSerializer
				{
					Formatting = Formatting.Indented
				};
				serializer.Serialize(file, this);
			}
		}

然后是序列化和反序列化

        // 反序列化
		public static ProgramParam Load()
		{
			var result = new ProgramParam();
			if (File.Exists(SavePath))
			{
				using (var file = File.OpenText(SavePath))
				{
					var serializer = new JsonSerializer();
					result = (ProgramParam)serializer.Deserialize(file, typeof(ProgramParam));
				}
			}
			return result;
		}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值