当前位置: 首页 > news >正文

c# xml 参数读取读取的简单使用

完整使用之测试参数的读取(xml)

保存一个xml文档(如果没有就会生成一个默认的 里面的参数用的是我们默认设置的),之后每次更改里面的某项,然后保存 类似于重新刷新一遍。
这里所用的xml测试参数前面需要加上private如

        //测试单号private string testnum = "NO.00001";public string TestNum{get { return this.testnum; }set{this.testnum = value;}}

在这里插入图片描述在这里插入图片描述

Program.cs

创建一个Form1对象,因为以后操作 就是用
在这里插入图片描述

Form1.cs

也就是在这里使用的

namespace WinFormsApp1
{public partial class Form1 : Form{public ArgCfgXml ArgCfgXmlObj;//创建一个函数 返回值就是设定的参数那个类public ArgValue GetTestPata(){return ArgCfgXmlObj.ArgPtr;//通过 .具体调节值的函数 来改变值}public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){string path = "F:\\log\\test.xml"; ;// Directory.GetCurrentDirectory() + "\\Config\\测试参数.xml";ArgCfgXmlObj = new ArgCfgXml(path);}private void button2_Click(object sender, EventArgs e){Program.mainFrm.GetTestPata().SpeedOperate = double.Parse(speedtextBox1.Text);Program.mainFrm.GetTestPata().TemperatureOperate = double.Parse(temptextBox2.Text);Program.mainFrm.ArgCfgXmlObj.SetPtr();}private void button1_Click(object sender, EventArgs e){speedtextBox1.Text = Program.mainFrm.GetTestPata().SpeedOperate.ToString();temptextBox2.Text = Program.mainFrm.GetTestPata().TemperatureOperate.ToString();}}
}

ArgCfg.cs

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;namespace WinFormsApp1
{public class ArgValue{double speed = 70;//速度初始值public double SpeedOperate{get { return this.speed; }set{this.speed = value;}}double temperature = 20;//温度初始值public double TemperatureOperate{get { return this.temperature; }set{this.temperature = value;}}}public class ArgCfgXml{public ArgValue argvalue;//就是上面那个类  实例化对象是在ArgPtr函数中 然后调用XmlSerializer函数private string xmlFile;//构造函数//作用:初始化时调用 用来配置一遍//如果第一次使用 也就是还没有创建这个文件 此时会使用我们设定的默认参数创建一个文件//如果第二次使用 就不会使用默认参数了 而是使用之后的值,也就是我们可以更改参数值public ArgCfgXml(string _xmlFile){this.xmlFile = _xmlFile;//如果没有读到数据 则为假 此时非假就为真了 就进入语句中;//这也是程序运行第一遍才会做的事情,因为第二遍了 里面已经有数据了 就不会执行下面的操作    if (!XMLDeserialize(_xmlFile)){argvalue = new ArgValue(); //实例化一个装满参数的对象XmlSerializer(_xmlFile);//将设定的初始值写入 XMLDeserialize(_xmlFile);//取出值 方便使用}}//函数的作用:获取/修改参数值 并保存(覆写的)//返回值为ArgValue这个类的函数public ArgValue ArgPtr{get { return this.argvalue; }//得到一整个的数据 然后通过 .某个得到具体的值set{this.argvalue = value;XmlSerializer(xmlFile);//保存一遍}}//作用:保存结果,且更新现在的对象public void SetPtr(){//先保存 然后将保存好的数据再赋值给 argvalueXmlSerializer(this.xmlFile);XMLDeserialize(this.xmlFile);}public bool XmlSerializer(string _xmlSerializerFile){try{if (argvalue == null)argvalue = new ArgValue();// Insert code to set properties and fields of the object.// XmlSerializer 类,它可以序列化的 XML 文档,将指定类型的对象反序列化 XML文档化为指定类型的对象。XmlSerializer mySerializer = new XmlSerializer(typeof(ArgValue));//using System.Xml.Serialization;// To write to a file, create a StreamWriter object.StreamWriter myWriter = new StreamWriter(_xmlSerializerFile);//默认就是覆写的 如果不想覆写 就加上truemySerializer.Serialize(myWriter, argvalue);//序列化后写入myWriter.Close();//将打开的文件关闭 不然后面就无法打开 也就无法写入和读取了}catch (Exception ee){return false;}return true;}public bool XMLDeserialize(string _xmlDeserializeFile){try{XmlSerializer mySerializer = new XmlSerializer(typeof(ArgValue));// To read the file, create a FileStream.using (FileStream myFileStream = new FileStream(_xmlDeserializeFile, FileMode.Open)){// Call the Deserialize method and cast to the object type.argvalue = (ArgValue)mySerializer.Deserialize(myFileStream);}// Call the Deserialize method and cast to the object type.}catch{return false;}return true;}}}

相关文章:

c# xml 参数读取读取的简单使用

完整使用之测试参数的读取(xml) 保存一个xml文档(如果没有就会生成一个默认的 里面的参数用的是我们默认设置的),之后每次更改里面的某项,然后保存 类似于重新刷新一遍。 这里所用的xml测试参数前面需要加…...

gym原来是这样用的

今天down了一个深度强化学习的程序,但是试来试去总是跑不成功,第一句就出问题了 env gym.make("clusterEnv-v0").unwrapped总是报没有该环境,思想半天,然后发现这是自己写的环境,需要到gym中去注册才能使用…...

百度SEO优化技巧与布局(提升网站排名的5种有效方法)

网站SEO关键词介绍: SEO(SearchEngineOptimization)即搜索引擎优化,是通过一系列技术手段和策略,让网站在搜索引擎中获得更好的排名和流量。关键词是SEO优化的重要组成部分,通过关键词布局合理&#xff0c…...

文案配音软件哪个好?(适合新手使用)

随着短视频的逐渐普及,视频博主越来越多,所以很多朋友也期待成为视频博主。但是,如果你想成为一个有名的视频博主,你需要在很多层面上比别人做得更好。其中之一就是视频文字的配音。相信大部分人都没有配音的技巧,所以…...

excel映射xml方法

excel映射xml方法 创建xml模板 新建一个文本文件&#xff0c;编写模板并命名为xxx.xml <?xml version"1.0" encoding"UTF-8"?> <root><item ID""><surname></surname><man></man><woman>&…...

2023/10/15

文章目录 1.uniapp之Vue2升Vue3值得注意的几点1.1 页面生命周期的使用1.2 引入资源的方式 2. 浏览器本地存储之Cookie和webStorage3. CSS变量 var()的用法4. CSS之实现线性渐变背景5. 图片无法和文字对齐的正确解决方案6. 使用正则处理接口返回的富文本内的图片7. transition实…...

Linux系统中如何开启和配置OpenGauss数据库的远程连接

文章目录 前言1. Linux 安装 openGauss2. Linux 安装cpolar3. 创建openGauss主节点端口号公网地址4. 远程连接openGauss5. 固定连接TCP公网地址6. 固定地址连接测试 前言 openGauss是一款开源关系型数据库管理系统&#xff0c;采用木兰宽松许可证v2发行。openGauss内核深度融合…...

【Docker】Docker网络及容器间通信详解

目录 背景 默认网络 1、bridge 网络模式 2、host 网络模式 3、none 网络模式 4、container 网络模式 自定义网络 容器间网络通信 IP通信 Docker DNS server Joined容器 前言 本实验通过docker DNS server和joined 容器两种方法实现Docker容器间的通信。Docker容器间…...

TikTok国际版 使用特网科技Bluestacks模拟器安装方法

特网科技Bluestacks模拟器主机 桌面自带Bluestacks模拟器 TikTok国际版Bluestacks模拟器搜索tiktot 登录google应用商店-安装TikTok 安装过程可能需要3-5分钟不等-配置过低可能会导致安装失败&#xff0c;建议升级更高内存。 安装完成-打开 安装成功APP-我的游戏查看 打开国际版…...

【Hello Algorithm】暴力递归到动态规划(四)

动态规划的数组压缩技巧 - 机器人走格子问题 题目是leetcode62题目原题 表示如下 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中…...

arm day 8

arm 写一段按键中断代码 main.c #include "uart.h" #include "key_it.h" int main() {char c;char *s;uart4_init();//串口初始化//中断初始化key_it_config();while(1){//保证主程序不结束}return 0; } src/key_it.c #include"key_it.h"voi…...

k8s-14 存储之volumes

Volumes配置管理 容器中的文件在磁盘上是临时存放的&#xff0c;这给容器中运行的特殊应用程序带来一些问题。首先&#xff0c;当容器崩溃时&#xff0c;kubelet 将重新启动容器&#xff0c;容器中的文件将会丢失因为容器会以干净的状态重建。其次&#xff0c;当在一个 Pod 中…...

二分图博弈

一张二分图&#xff0c;Alice和Bob每人走一步&#xff0c;不能重复走&#xff0c;谁不能走谁输 结论&#xff1a;若存在最大匹配不包含初始点&#xff0c;则Bob赢&#xff0c;否则Alice赢 以上图为例&#xff0c;红色为最大匹配。 首先对于Alice第一步只能走黑边。而Alice无论…...

【C++】C++11—— 包装器

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;C学习 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;【C】C11…...

LED显示屏高刷新率和低刷新率有什么区别

LED显示屏的刷新率是指图像在LED显示屏上更新的速度&#xff0c;也即屏幕上的图像每秒钟出现的次数&#xff0c;它的单位是赫兹&#xff08;Hz&#xff09;。LED显示屏的刷新率越高&#xff0c;图像闪烁感就越小&#xff0c;稳定性也就越高&#xff0c;换言之对视力的保护也越好…...

国际伦敦银点差费值得吗?

伦敦银是国际轨技术属市场上广受追捧的白银保证金交易品种&#xff0c;具有交易时长、交易制度灵活、资金利用率高等诸多的优点。 国际伦敦银的优势主要来自它所实行的是保证金交易制度。目前香港平台一般执行的保证金比例标准是2%&#xff0c;以目前22美元/盎司左右的白银价格…...

常见的作物模型应用技巧!DSSAT模型、APSIM模型、WOFOST模型与PCSE模型等应用

①最新DSSAT作物模型建模方法及应用 DSSAT模型内核算法是基于Fortran语言开发的&#xff0c;软件界面是基于C进行开发。了解和熟悉DSSAT模型的关键算法和软件的操作是学习DSSAT模型的基础。此外&#xff0c;想要成为一名优秀的作物模型使用者与科研团队不可或缺的人才&#xff…...

2023年中国超硬材料制品分析及超硬刀具市场规模分析[图]

超硬材料是指硬度特别高的材料&#xff0c;可分为天然以及人造两种&#xff0c;前者主要包括天然的钻石&#xff08;金刚石&#xff09;、黑钻石&#xff0c;后者则包括人造金刚石、立方氮化硼。 超硬材料制品分类 资料来源&#xff1a;共研产业咨询&#xff08;共研网&#x…...

使用React、Express实现一个问卷发布/收集系统

1. 设置项目结构 questionnaire-system/client/ // 前端应用src/components/ // React组件pages/ // 页面App.jsindex.jsserver/ // 后端服务routes/ // 路由models/ // 数据模型app.jspackage.json2. 启动前端应用…...

DDD之上下文映射图(Context Mapping)

领域驱动设计系列文章&#xff0c;点击上方合集↑ 1. 开头 在DDD中&#xff0c;限界上下文与限界上下文之间需要相互集成&#xff0c;这种集成关系在DDD中称为上下文映射&#xff08;Context Mapping&#xff09;&#xff0c;也就是子域与子域之间的集成关系。 所以首先我们…...

夏普鸿海合作破裂启示:跨文化并购中的技术控制与信任危机

1. 一场被寄予厚望的“联姻”为何走向破裂&#xff1f;2012年3月&#xff0c;当日本液晶面板巨头夏普宣布与全球最大电子代工企业鸿海&#xff08;富士康&#xff09;达成资本合作时&#xff0c;整个东亚电子产业圈都为之震动。这被视为一个标志性事件&#xff1a;一家以技术自…...

Doccano自动标注实战:我用它3天搞定了一个NER项目的数据标注

Doccano自动标注实战&#xff1a;我用它3天搞定了一个NER项目的数据标注 1. 项目背景与挑战 上个月接到了一个从新闻文本中抽取公司名和职位的NER任务&#xff0c;标注量约5000条。作为独立开发者&#xff0c;既没有专业标注团队&#xff0c;也没有充足预算购买商业标注服务。传…...

光耦LED寿命评估与可靠性设计实践

1. 光耦LED寿命评估的核心价值 在工业自动化控制系统中&#xff0c;我曾亲眼目睹一个价值数百万的生产线因为光耦器件失效导致整个控制系统误动作。故障排查时发现&#xff0c;正是光耦内部的LED光源经过5年连续工作后出现严重光衰&#xff0c;使得信号传输出现错误。这个教训让…...

PyODBC:如何用Python一站式连接所有主流数据库?

PyODBC&#xff1a;如何用Python一站式连接所有主流数据库&#xff1f; 【免费下载链接】pyodbc Python ODBC bridge 项目地址: https://gitcode.com/gh_mirrors/py/pyodbc 你是否遇到过这样的困境&#xff1a;公司项目需要连接SQL Server&#xff0c;个人项目要用MySQL…...

AMD APU异构计算与能效优化技术解析

1. 异构计算时代的能效革命&#xff1a;AMD APU技术深度解析 在半导体行业摸爬滚打十几年&#xff0c;我亲眼见证了处理器能效比从单纯依赖制程进步到架构创新的转变。2014年AMD提出的25x20计划&#xff08;到2020年实现APU能效提升25倍&#xff09;曾被视为天方夜谭&#xff0…...

从车窗升降到自动驾驶:用5个真实故事看懂汽车总线LIN、CAN、CAN-FD、FlexRay和以太网的进化史

从车窗升降到自动驾驶&#xff1a;用5个真实故事看懂汽车总线技术的进化史 清晨七点&#xff0c;当上班族按下车钥匙解锁按钮时&#xff0c;车门锁、后视镜展开、仪表盘亮起的动作几乎同步完成——这背后是汽车电子系统数十年的进化缩影。从最初控制车窗升降的简单信号传输&…...

Steel:专为AI智能体设计的浏览器自动化API与部署实战

1. 项目概述&#xff1a;为AI应用赋能的浏览器自动化引擎 如果你正在构建一个需要与真实网页交互的AI智能体&#xff0c;或者开发一个复杂的浏览器自动化工具&#xff0c;那么你大概率会遇到一个共同的难题&#xff1a;如何稳定、高效地管理浏览器实例&#xff1f;从处理无头Ch…...

用手机遥控电脑演讲:开源项目Presentation-Control部署与实战指南

1. 项目概述与核心价值最近在准备一个重要的线上技术分享&#xff0c;过程中遇到了一个几乎所有演讲者都会头疼的问题&#xff1a;如何优雅地控制幻灯片播放&#xff0c;同时又能自如地操作电脑上的其他演示工具&#xff0c;比如代码编辑器、终端或者在线Demo&#xff1f;传统的…...

D3KeyHelper终极指南:5分钟上手暗黑3智能宏,轻松提升游戏体验

D3KeyHelper终极指南&#xff1a;5分钟上手暗黑3智能宏&#xff0c;轻松提升游戏体验 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面&#xff0c;可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 还在为暗黑破坏…...

Zsh插件实现Git输出路径美化:绝对路径转相对路径原理与实践

1. 项目概述与核心价值最近在终端里敲git status或者git diff的时候&#xff0c;你是不是也经常被那一长串的绝对路径搞得有点烦躁&#xff1f;尤其是在一个嵌套比较深的项目里&#xff0c;输出的文件路径长得能占满半个屏幕&#xff0c;想快速定位到具体是哪个文件改了&#x…...