C# 工具类

ops/2025/2/14 1:32:54/

文章目录

  • Dns获取本机IP地址
  • 获取当前项目App.config文件下的value值
  • 将枚举值赋值到下拉文本框中
  • 读取Json文件
  • JSON转换
  • 使用文件流的方式,向文档中添加数据
  • 将数据写入指定路径文件中
  • 检查文件是否存在,不存在时进行创建
  • Json转换为对象

Dns获取本机IP地址

public static string GetLocalIP()
{try{string HostName = Dns.GetHostName(); //得到主机名IPHostEntry IpEntry = Dns.GetHostEntry(HostName);for (int i = 0; i < IpEntry.AddressList.Length; i++){//从IP地址列表中筛选出IPv4类型的IP地址//AddressFamily.InterNetwork表示此IP为IPv4,//AddressFamily.InterNetworkV6表示此地址为IPv6类型if (IpEntry.AddressList[i].AddressFamily == AddressFamily.InterNetwork){return IpEntry.AddressList[i].ToString();}}return "";}catch (Exception ex){MessageBox.Show("获取本机IP出错:" + ex.Message);return "";}
}

获取当前项目App.config文件下的value值

//获取当前项目App.config文件下的 key=ActiveMQURL 的value值
<?xml version="1.0" encoding="utf-8"?>
<configuration><appSettings><add key="ActiveMQURL" value="tcp://xxxxx:xxxx" /></appSettings>
</configuration>string url = System.Configuration.ConfigurationManager.AppSettings["ActiveMQURL"];//获取+验证
if (ConfigurationManager.AppSettings["CameraDirver"].ToUpper() == "TOUPCAM")
{}

将枚举值赋值到下拉文本框中

//将枚举值赋值到下拉文本框中
//定义静态方法进行转换
public static List<Item> EnumToList<T>()
{List<Item> ret = new List<Item>();foreach (Enum item in Enum.GetValues(typeof(T))){Item it = new Item();it.Value = item;it.Name =Enum.GetName(typeof(T),item);ret.Add(it);}return ret;
}//枚举声明
public enum SexType
{=0,=1
}//第一种转换方式
tSex.DataSource = CommUtils.Bind.BindUtils.EnumToList<PQCS.Enums.SexType>();//
[Serializable]
public class Item
{public string Name { get; set; }public Object Value { get; set; }
}

读取Json文件

public HttpService HttpService { get; set; } //public LogService()
{Dictionary<String, String> keyValuePairs = LocalStorage.DeserializeJSON<Dictionary<String, String>>("LogConfig");if (true){keyValuePairs = new Dictionary<string, string>();keyValuePairs.Add("logServiceUrl", "http://xxxxxx:xxxxx");//keyValuePairs.Add("logServiceUrl", "http://localhost:8080");LocalStorage.SerializeJSON(keyValuePairs, "LogConfig");}this.HttpService = new HttpService();this.HttpService.HostUrl = keyValuePairs["logServiceUrl"];//HostUrl string属性
}

JSON转换

public static T DeserializeJSON<T>(string name)
{byte[] data = ReadFile(name);if (data != null){string text = Encoding.Default.GetString(data);object obj = Newtonsoft.Json.JsonConvert.DeserializeObject(text, typeof(T));return (T)obj;}else{return default(T);}
}public static void SerializeJSON(Object obj, string name)
{string s = Newtonsoft.Json.JsonConvert.SerializeObject(obj);byte[] data = Encoding.Default.GetBytes(s);SaveFile(data, name);
}

使用文件流的方式,向文档中添加数据

FileStream 文件流 = new FileStream(蜡块打印路径, FileMode.Create, FileAccess.Write);//搜索创建写入文件 
StreamWriter sw = new StreamWriter(文件流, Encoding.Default);//sw(流作者)文件流编码默认
int 蜡块总数 = Convert.ToInt32(totalSample.Text);//起始值(蜡块数量)
int 材料数量 = Convert.ToInt32(totalL.Text);//结束值(材料数量)
int 取材次数 = 材料数量 - 蜡块总数;
string 病理号 = CurrentCaseViewModel.CaseNO;
if (取材次数 <= 0)
{if (材料数量 > 0){sw.Write(病理号 + "-" + 材料数量.ToString());}else{sw.Write(病理号);}sw.Close();文件流.Close();
}

将数据写入指定路径文件中

string timestr = DateTime.Now.ToString("yyMMddHHmmssfff");
//写入第一个文件夹
string path = "C:\\" + fileName + "\\" +timestr + "-" + model.CaseNo+"-" + model.Number + ".txt";
FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write);//搜索创建写入文件
StreamWriter sw = new StreamWriter(fs, Encoding.UTF8);
sw.Write(model.CaseNo + "," + model.Number + "," + model.Type + "\r\n");
sw.Dispose();

检查文件是否存在,不存在时进行创建

string fileFolder = "C:\\" + fileName;
if (!Directory.Exists(fileFolder))
{Directory.CreateDirectory(fileFolder);
}

Json转换为对象

StreamReader file = File.OpenText(Environment.CurrentDirectory + "\\UpdateList.json");
Newtonsoft.Json.JsonTextReader reader = new Newtonsoft.Json.JsonTextReader(file);Newtonsoft.Json.JsonSerializer serializer = new Newtonsoft.Json.JsonSerializer();object obj = serializer.Deserialize(reader, typeof(List<UpdateConfig>));工作站List = obj as List<UpdateConfig>;

http://www.ppmy.cn/ops/8978.html

相关文章

C语言 语法

常用的排序算法&#xff08;4&#xff09;&#xff1a; 插入排序&#xff08;小数据基本有序&#xff09;&#xff0c;快速排序&#xff0c;归并排序&#xff08;大数据集&#xff09;&#xff0c;堆排序 冒泡排序和选择排序实际场景不会使用性能差 如何评估排序算法的性能&…

35. UE5 RPG制作火球术技能

接下来&#xff0c;我们将制作技能了&#xff0c;总算迈进了一大步。首先回顾一下之前是如何实现技能触发的&#xff0c;然后再进入正题。 如果想实现我之前的触发方式的&#xff0c;请看此栏目的31-33篇文章&#xff0c;讲解了实现逻辑&#xff0c;这里总结一下&#xff1a; …

node.js-模块化

定义&#xff1a;CommonJS模块是为Node.js打包Javascript代码的原始方式。Node.js还支持浏览器和其他Javascript运行时使用的ECMAScript模块标准。 在Node.js中&#xff0c;每个文件都被视为一个单独的模块。 概念&#xff1a;项目是由很多个模块文件组成的 好处&#xff1a…

极狐GitLab x LigaAI,AI 时代研发提效新范式

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 近日&#xff0c;极狐GitLab 和 LigaAI 宣布合作&#xff0c;双…

JMeter--后置处理器--正则表达式提取器

正则表达式提取器&#xff08;Regular Expression Extractor&#xff09; 接口需要关联时&#xff0c;可以通过正则表达式提取所需要的值 右键 >>> 添加 >>> 后置处理器 >>> 正则表达式提取器&#xff08;Regular Expression Extractor&#xff0…

汽车研发项目进度管理的挑战与优化策略

随着汽车行业的快速发展和市场竞争的加剧&#xff0c;新车型研发项目的进度管理成为车企赢得市场的关键。然而&#xff0c;由于汽车研发项目通常具有投资大、周期长、技术难度高、参与方众多等特点&#xff0c;项目进度管理面临着诸多挑战。为了提升车型研发效率、缩短研发周期…

渐进时间复杂度O(n)

基本操作数 算法的运行速度受计算机性能的影响&#xff0c;所以通常考虑算法效率的不是算法运行的实际用时&#xff0c;而是算法运行所需要进行的基本操作的数量。 像加减乘除、访问变量、给变量赋值等都可以看作基本操作。对基本操作的计数或是估测可以作为评判算法用时的指标…

Webpy(Web开发框架简单应用)

目录 前言&#xff1a; 简单的webpy服务器实现 application(urls, globals())函数 URL映射 url&#xff08;理解&#xff09; 映射类型 webpy架构分析 前言&#xff1a; Python Web 开发中&#xff0c;服务端程序可以分为两个部分&#xff0c;一是服务器程序&#xff0c…