类INI文件字符串解析

it2025-12-13  8

 类INI文件字符串解析,目前经常用于和客户的对接配置,因为和客户对接,经常各种参数都不一致(参数多少,参数名等,现场人员不好配置),配置界面做的乱七八糟,所以现在的解决方案是利用xml做一个示例配置文件,用于对接配置,客户配置的时候,拷贝示例,修改参数就可以了。

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Upload.Util { /// <summary> /// Ini类似读取如: /// 外挂url=http://ip:port/rminf/services/RmOutAccess?wsdl /// 外挂接口序列号= /// 卡口url=http://ip:port/rminf/services/Trans?wsdl /// 卡口接口序列号= /// </summary> public class IniStringEx { private string content; private List<KeyValuePair<string, string>> list; public IniStringEx(string txt) { content = txt; list = new List<KeyValuePair<string, string>>(); list.Clear(); string[] lines = content.Split('\n'); string key = ""; string value = ""; foreach(string line in lines) { //是否为null或空白 if (string.IsNullOrEmpty(line) || string.IsNullOrEmpty(line.Trim())) continue; //是否是注释 if (line.Trim().StartsWith(";")) { continue; } if (line.Contains("=")) { key = ""; value = ""; //处理 string[] keyvalue = line.Split('='); for(int i = 0;i<keyvalue.Length;i++) { if (i==0)//key值 { key = keyvalue[i].Trim(); } else if (i==1) { value = keyvalue[i].Trim(); } else { value += keyvalue[i].Trim(); } } KeyValuePair<string, string> x = new KeyValuePair<string, string>(key, value); list.Add(x); } } } /// <summary> /// 获取key对应的Value值,读取不到设为默认值 /// </summary> /// <param name="key"></param> /// <param name="sdefault"></param> /// <returns></returns> public string GetValue(string key,string sdefault) { if (list == null || list.Count <= 0) return sdefault; try { KeyValuePair<string, string> x = list.Find(p => p.Key == key); if (x.Key == key) return x.Value; } catch { return sdefault; } return sdefault; } /// <summary> /// 获取key对应的Value值,读取不到设为默认值 /// </summary> /// <param name="key"></param> /// <param name="sdefault"></param> /// <returns></returns> public string GetValue(string key) { return GetValue(key, ""); } } }

 对应的xml配置示例文档

<?xml version="1.0" encoding="utf-8" ?> <root> <!--上传配置示例文档,对应选项,对接配置示例,Content内容输入时请靠边输入,按wuxi格式输入--> <Upload Name="Wuxi"> <Content> 外挂url=http://ip:port/rminf/services/RmOutAccess?wsdl 外挂接口序列号= 卡口url=http://ip:port/rminf/services/Trans?wsdl 卡口接口序列号= 图片url=ftp://ip:port 图片上传用户名= 图片上传密码= </Content> </Upload> </root>

 对应参考配置界面

最新回复(0)