...的配置文件,用什么方式好啊?比如.txt.ini.xml...
发布网友
发布时间:2024-10-23 08:26
我来回答
共2个回答
热心网友
时间:2024-11-09 20:44
IIS站点的配置文件一般是一个名为Web.config的文件,这个文件的读取在asp.net中是有封装好的类的,当你的项目引用了System.Configration后就可以使用了,例如ConfigurationManager.AppSettings["xxx"] ,我个人认为一个站点有一个配置文件就可以了,你所说的添加一个配置文件是希望有两个配置文件吗?iis对配置文件都是预读取的,如果web。config中的内容被修改了,iis为了更新内部的配置会重新启动IIS进程
这个类是很早以前写的一个操作xml的小工具,如果你想在站点里添加xml配置的话,这个也许有用
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Xml;
using System.Data;
namespace SeecaaYellow.BusinessFacade
{
/// <summary>
/// 提供将xml当作数据库处理的一些方法
/// </summary>
public class XmlOperation
{
#region 私有成员
private string strdatafile = null;
/// <summary>
/// 数据集
/// </summary>
private DataSet myds = null;
/// <summary>
/// 字符过滤数组 比如 "id=1 and username=trace"
/// </summary>
private string strfilter = null;
/// <summary>
/// 排序的字段 比如 "id desc,username"
/// </summary>
private string strsort = null;
/// <summary>
/// 数据集合中的字段名集合
/// </summary>
private string[] strfields = null;
/// <summary>
/// 数据集合中的数据数组
/// </summary>
private string[] strdata = null;
/// <summary>
/// 模板文件的全路径
/// </summary>
private string strtemplatefile = null;
#endregion
#region 公共属性
/// <summary>
/// 模板文件路径
/// </summary>
public string Strtemplatefile
{
set { this.strtemplatefile = value; }
get { return this.strtemplatefile; }
}
/// <summary>
/// 数据文件路径
/// </summary>
public string Strdatafile
{
set { this.strdatafile = value; }
get { return this.strdatafile; }
}
/// <summary>
/// 字符过滤数组
/// </summary>
public string Strfilter
{
set { this.strfilter = value; }
}
/// <summary>
/// 排序的字段
/// </summary>
public string Strsort
{
set { this.strsort = value; }
}
/// <summary>
/// 数据集合中的字段名
/// </summary>
public string[] Strfields
{
set { this.strfields = value; }
}
/// <summary>
/// 数据集合中的数据数组
/// </summary>
public string[] Strdata
{
set { this.strdata = value; }
}
/// <summary>
/// 数据集合,能放在缓存供调用
/// </summary>
public DataSet Myds
{
set { this.myds = value; }
get { return this.myds; }
}
#endregion
public XmlOperation()
{
//
// todo: 提供将xml当作数据库处理的一些方法
//
}
/// <summary>
/// 取得xml文件的内容并填入dataset
/// </summary>
private void open()
{
try
{
this.myds = new DataSet();
FileStream fin;
fin = new FileStream(this.strdatafile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
this.myds.ReadXml(fin);
fin.Close();
}
catch (Exception ee)
{
Log log = new Log();
log.Struser = "系统";
log.Strdepartment = "读取xml数据";
log.Strfilename = "SeecaaYellow.BusinessFacade.XmlOperation";
log.Strdescription = ee.Message;
log.writelog();
}
}
/// <summary>
/// 将操作结果写入xml
/// </summary>
private void save()
{
try
{
this.myds.WriteXml(this.strdatafile, XmlWriteMode.WriteSchema);
}
catch (Exception ee)
{
Log log = new Log();
log.Struser = "系统";
log.Strdepartment = "保存xml数据";
log.Strfilename = "SeecaaYellow.BusinessFacade.XmlOperation";
log.Strdescription = ee.Message;
log.writelog();
}
}
/// <summary>
/// 取得特定的数据视图
/// 一般在数据绑定的时候,我们能非常方便的生成供绑定的视图
/// </summary>
/// <returns>数据视图</returns>
public DataView selectview()
{
if (this.myds == null) this.open();
DataView mydv = new DataView(this.myds.Tables[0]);
if (strfilter != null) mydv.RowFilter = this.strfilter;
mydv.Sort = this.strsort;
return mydv;
}
/// <summary>
/// 取得特定的行
/// 使用行的方式是因为有些时候,我们仅仅只需要某一行或多行记录
/// 比如我们判断登陆的时候,只是需要某个id的所在行,然后匹配他的密码项
/// </summary>
/// <returns>各行数据</returns>
public DataRow[] selectrows()
{
if (this.myds == null) this.open();
DataRow[] myrows = myds.Tables[0].Select(this.strfilter);
return myrows;
}
/// <summary>
/// 往xml当中插入一条数据
/// </summary>
/// <returns>操作是否成功</returns>
public bool insert()
{
if (this.myds == null) this.open();
try
{
DataRow newrow = myds.Tables[0].NewRow();
for (int i = 0; i < this.strfields.Length; i++)
{
newrow[this.strfields[i]] = this.strdata[i];
}
myds.Tables[0].Rows.Add(newrow);
this.save();
return true;
}
catch (Exception ee)
{
Log log = new Log();
log.Struser = "系统";
log.Strdepartment = "写入xml数据";
log.Strfilename = "SeecaaYellow.BusinessFacade.XmlOperation";
log.Strdescription = ee.Message;
log.writelog();
return false;
}
}
/// <summary>
/// 更新数据,这个时候要确保strfields 和 strdata 两个数组的维数一致
/// </summary>
/// <returns>是否更新成功</returns>
public bool update()
{
if (this.myds == null) this.open();
try
{
DataRow[] editrow = myds.Tables[0].Select(this.strfilter);
for (int j = 0; j < editrow.Length; j++)
{
for (int i = 0; i < this.strfields.Length; i++)
{
editrow[j][this.strfields[i]] = this.strdata[i];
}
}
this.save();
return true;
}
catch (Exception ee)
{
Log log = new Log();
log.Struser = "系统";
log.Strdepartment = "更新xml数据";
log.Strfilename = "SeecaaYellow.BusinessFacade.XmlOperation";
log.Strdescription = ee.Message;
log.writelog();
return false;
}
}
/// <summary>
/// 删除数据
/// </summary>
/// <returns>是否删除成功</returns>
public bool delete()
{
if (this.myds == null) this.open();
try
{
DataRow[] editrow = myds.Tables[0].Select(this.strfilter);
for (int i = 0; i < editrow.Length; i++)
{
editrow[i].Delete();
}
this.save();
return true;
}
catch (Exception ee)
{
Log log = new Log();
log.Struser = "系统";
log.Strdepartment = "删除xml数据";
log.Strfilename = "SeecaaYellow.BusinessFacade.XmlOperation";
log.Strdescription = ee.Message;
log.writelog();
return false;
}
}
/// <summary>
/// 根据一个模板,新建一个xml文件(前提是必须有一个模板文件、并确定目标文件路径)
/// </summary>
/// <returns>写入是否成功</returns>
public bool create()
{
try
{
XmlDocument doc = new XmlDocument();
XmlTextReader reader = new XmlTextReader(this.strtemplatefile);
doc.Load(reader);
XmlElement member;
XmlNode root = doc.DocumentElement;
for (int i = 0; i < this.strfields.Length; i++)
{
member = doc.CreateElement(strfields[i].ToString());
member.InnerText = this.strdata[i].ToString();
root.AppendChild(member);
}
XmlTextWriter xmlwriter = new XmlTextWriter(this.strdatafile, null);
xmlwriter.Formatting = Formatting.Indented;
doc.Save(xmlwriter);
xmlwriter.Close();
reader.Close();
return true;
}
catch (Exception ee)
{
Log log = new Log();
log.Struser = "系统";
log.Strdepartment = "新建xml数据";
log.Strfilename = "SeecaaYellow.BusinessFacade.XmlOperation";
log.Strdescription = ee.Message;
log.writelog();
return false;
}
}
/// <summary>
/// 释放资源
/// </summary>
public void clear()
{
if (this.myds != null)
{
this.myds.Dispose();
}
}
}
}
热心网友
时间:2024-11-09 20:50
看你配置信息的复杂程度了。如果是简单的一些配置,可以使用ini文本配置,这样读取起来方便一些。但是如果配置信息具有层次化的特点,那么ini这样的文本文件就无能为力了。这就需要是XML格式的配置文件,也就是说XML格式的配置文件可以表达树形的层次关系,对于复杂内容的配置文档是再适合不过的了。
...的配置文件,用什么方式好啊?比如.txt.ini.xml...
IIS站点的配置文件一般是一个名为Web.config的文件,这个文件的读取在asp.net中是有封装好的类的,当你的项目引用了System.Configration后就可以使用了,例如ConfigurationManager.AppSettings["xxx"] ,我个人认为一个站点有一个配置文件就可以了,你所说的添加一个配置文件是希望有两个配置文件吗?iis对配置文件都是预读...
C# winform 的配置文件用什么保存好,txt,ini.还是xml.
都可以,看你自己选择了 txt需要自定义格式 xml可以用XmlDocument操作 ini要通过DllImport("kernel32")来引入外部函数操作
深度学习项目中配置文件探析,用ini、json还是yaml?附源码示例
首先,py文件内的配置简单易用,但跨语言共享性较差。Python内置的configparser库支持ini或cfg格式,如config.cfg,其结构包括节、键和值。读取时,使用configparser将配置转换为字典便于调用。json作为另一种流行方式,其简洁且易于处理字符串和字典。将cfg转换为json后,读取代码同样直观。然而,json的注释和...
啥是配置文件呢,具体该怎样用
配置文件就是记录软件或者系统运行时需要的基本信息的文件,常见的配置文件有xml格式,也有ini纯文本格式的。说简单点,就是key-value对,通过键查找值。比如windows的启动文件是boot.ini,文件内容如下:[boot loader]timeout=30 default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS [operating system...
c# 里用ini和xml作为保存配置哪种比较方便?或者有其他更方便的吗。
一般弄一个配置实体类 所有的配置都是其中一个属性或者字段或者子对象 然后需要保存读取的时候 可以用序列化和反序列化成xml/json/二进制 进行文件保存和读取
请问编写软件的配置信息保存在哪里最好呢?
和文本文件一个回事.用户拿记事本打开dat.照样当你是txt看.本人觉得ini 和xml文件比较的好.. 而且加密应该是必须的.但如果是无所谓的信息的话,那就不必加密,浪费程序开发周期. 但配置文本格式出错的时候 程序必须要能正确处理 这个最重要. 毕竟 "崩"的一声感觉很不爽....
.NET配置文件大揭秘:轻松读取JSON、XML、INI和环境变量
INI文件是一种简单的配置文件格式,通常用于保存简单的键值对配置。读取INI文件的实例描述和使用示例如下:环境变量通常用于存储敏感信息,如API密钥或数据库连接字符串。读取环境变量的实例描述和使用示例如下:以上代码提供了使用IConfiguration读取JSON、XML、INI文件以及环境变量的通用方法,使得配置信息的获取...
关于千千静听的问题
一样的文件信息操作方式,请在选项里的“播放列表”页中将读取信息改为“添加”时,并且选上“缓存文件信息到播放列表”。?四.歌词问:怎么使用歌词秀,为什么我自己从网上下载的歌词就不能显示? 歌词文件有一定的格式,一般以LRC和TXT后缀,每句歌词前面有[00:00.00]这样的时间标签,如果没有这些标签的歌词是无法显示...
yaml,json,ini,xml用来做配置文件,优缺点分别是什么?
在配置文件的选择上,ini、toml、yaml、json、xml以及plist各有特点。不同文件类型在可读性、数据复杂度和使用场景上存在差异,适合不同需求。从人类编写的角度考虑,ini格式被认为是最直观的配置文件类型。它以键值对的形式,以易读的文本模式展示,适合初学者快速上手编写。然而,其复杂度较低,不支持...
将设置信息写到INI文件还是XML好
xml有节点信息,读写更方便,如果是有结构的可以存在xml里。如果存在ini里可以存成json格式