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优化的重要组成部分,通过关键词布局合理,…...
文案配音软件哪个好?(适合新手使用)
随着短视频的逐渐普及,视频博主越来越多,所以很多朋友也期待成为视频博主。但是,如果你想成为一个有名的视频博主,你需要在很多层面上比别人做得更好。其中之一就是视频文字的配音。相信大部分人都没有配音的技巧,所以…...
excel映射xml方法
excel映射xml方法 创建xml模板 新建一个文本文件,编写模板并命名为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是一款开源关系型数据库管理系统,采用木兰宽松许可证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分钟不等-配置过低可能会导致安装失败,建议升级更高内存。 安装完成-打开 安装成功APP-我的游戏查看 打开国际版…...
【Hello Algorithm】暴力递归到动态规划(四)
动态规划的数组压缩技巧 - 机器人走格子问题 题目是leetcode62题目原题 表示如下 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中…...
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配置管理 容器中的文件在磁盘上是临时存放的,这给容器中运行的特殊应用程序带来一些问题。首先,当容器崩溃时,kubelet 将重新启动容器,容器中的文件将会丢失因为容器会以干净的状态重建。其次,当在一个 Pod 中…...
二分图博弈
一张二分图,Alice和Bob每人走一步,不能重复走,谁不能走谁输 结论:若存在最大匹配不包含初始点,则Bob赢,否则Alice赢 以上图为例,红色为最大匹配。 首先对于Alice第一步只能走黑边。而Alice无论…...
【C++】C++11—— 包装器
📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:C学习 🎯长路漫漫浩浩,万事皆有期待 上一篇博客:【C】C11…...
LED显示屏高刷新率和低刷新率有什么区别
LED显示屏的刷新率是指图像在LED显示屏上更新的速度,也即屏幕上的图像每秒钟出现的次数,它的单位是赫兹(Hz)。LED显示屏的刷新率越高,图像闪烁感就越小,稳定性也就越高,换言之对视力的保护也越好…...
国际伦敦银点差费值得吗?
伦敦银是国际轨技术属市场上广受追捧的白银保证金交易品种,具有交易时长、交易制度灵活、资金利用率高等诸多的优点。 国际伦敦银的优势主要来自它所实行的是保证金交易制度。目前香港平台一般执行的保证金比例标准是2%,以目前22美元/盎司左右的白银价格…...
常见的作物模型应用技巧!DSSAT模型、APSIM模型、WOFOST模型与PCSE模型等应用
①最新DSSAT作物模型建模方法及应用 DSSAT模型内核算法是基于Fortran语言开发的,软件界面是基于C进行开发。了解和熟悉DSSAT模型的关键算法和软件的操作是学习DSSAT模型的基础。此外,想要成为一名优秀的作物模型使用者与科研团队不可或缺的人才ÿ…...
2023年中国超硬材料制品分析及超硬刀具市场规模分析[图]
超硬材料是指硬度特别高的材料,可分为天然以及人造两种,前者主要包括天然的钻石(金刚石)、黑钻石,后者则包括人造金刚石、立方氮化硼。 超硬材料制品分类 资料来源:共研产业咨询(共研网&#x…...
使用React、Express实现一个问卷发布/收集系统
1. 设置项目结构 questionnaire-system/client/ // 前端应用src/components/ // React组件pages/ // 页面App.jsindex.jsserver/ // 后端服务routes/ // 路由models/ // 数据模型app.jspackage.json2. 启动前端应用…...
DDD之上下文映射图(Context Mapping)
领域驱动设计系列文章,点击上方合集↑ 1. 开头 在DDD中,限界上下文与限界上下文之间需要相互集成,这种集成关系在DDD中称为上下文映射(Context Mapping),也就是子域与子域之间的集成关系。 所以首先我们…...
visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...
