本文目录一览:
Asp.net core 配置文件
Asp.net core 的配置文件是严格的json格式
appsettings.json 文件如下,看名字类型以前的Web.config 与app.config,只不过换成了json格式
配置文件的读取都是通过一个Configuration对象来读取。具体来说,Configuration对象实际指ConfigurationRoot和ConfigurationSection两个类型。配置文件中根节点所在的Configuration对象被称为ConfigurationRoot,除此之外的其他Configuration对象则被称为ConfigurationSection,配置模型分别定义了接口IConfigurationRoot和IConfigurationSection来表示它们,这两个接口都是IConfiguration的继承者-.net网站配置文件
Configuration对象是由ConfigurationBuilder创建的,
而原始的配置信息来源是通过ConfigurationSource获取的的,
所以读取配置信息时首先需要一个 ConfigurationRoot对象,所以读取过程是:先创建一个ConfigurationBuilder对象,在ConfigurationBuilder对象上添加或者注册数据源 ConfigurationSource(可以注册一个或者多个), 最后调用Buid()方法,来实现我们需要的Configuration对象的一个实例。-.net网站配置文件
即:
Asp.net框架默认添加了IConfiguration的依赖注入
采用 ConfigurationRoot类的拓展方法:
ASP.NET开发宝典:添加配置文件Web.Config
添加配置文件Web Config
在Visual Studio 中创建网站后 会自动添加Web Config配置文件 当然 用户也可以手动添加Web Config文件
手动添加Web Config文件的方法 在 解决方案资源管理器 窗口中 右击网站名称 在弹出的快捷菜单中选择 添加新项 命令 打开 添加新项 对话框 选择 Web配置文件 选项 单击 添加 按钮即可 如图 所示 -.net网站配置文件
图 添加配置文件Web Config
说明 在Visual Studio 开发环境中Web Config文件不需要手动添加 这里只是提供添加的方法
返回目录 ASP NET开发宝典
编辑推荐
ASP NET开发培训视频教程
Microsoft NET框架程序设计视频教程
ASP NET MVC 框架揭秘
lishixinzhi/Article/program/net/201311/16013
.Net Framework提供的配置文件操作
创建配置节类
必须创建继承自ConfigurationSection的对象才能进行配置数据读写操作 ConfigurationSection提供了索引器用来获取和设置配置数据 需要注意的是拥有ConfigurationProperty特性的属性才会被存储 并且名称要保持大小写完全一致 如下面的代码中 所有的 id 必须保持一样 -.net网站配置文件
class ConfigSectionData : ConfigurationSection
{
[ConfigurationProperty( id )]
public int Id
{
get { return (int)this[ id ]; }
set { this[ id ] = value; }
}
[ConfigurationProperty( time )]
public DateTime Time
{
get { return (DateTime)this[ time ]; }
set { this[ time ] = value; }
}
}
创建配置文件操作对象
Configuration config = ConfigurationManager OpenExeConfiguration(ConfigurationUserLevel None)
ConfigSectionData data = new ConfigSectionData()
data Id = ;
data Time = DateTime Now;
config Sections Add( add data)
config Save(ConfigurationSaveMode Minimal)
上面的例子是操作nfig 在根节点(configuration)下写入名称为 add 的配置数据
需要注意的 VS 在IDE模式下会将信息写入*nfig 并且在程序关闭时覆写该文件 因此您可能看不到您写入的配置数据 只要在资源管理其中执行* exe 文件 您就可以在*nfig 文件中看到结果了 -.net网站配置文件
如果我们需要操作非缺省配置文件 可以使用ExeConfigurationFileMap对象
ExeConfigurationFileMap file = new ExeConfigurationFileMap()
file ExeConfigFilename = nfig ;
Configuration config = ConfigurationManager OpenMappedExeConfiguration(file ConfigurationUserLevel None) -.net网站配置文件
ConfigSectionData data = new ConfigSectionData()
data Id = ;
data Time = DateTime Now;
config Sections Add( add data)
config Save(ConfigurationSaveMode Minimal)
如果我们不希望在根节点下写入配置数据 可以使用ConfigurationSectionGroup对象
ExeConfigurationFileMap file = new ExeConfigurationFileMap()
file ExeConfigFilename = nfig ;
Configuration config = ConfigurationManager OpenMappedExeConfiguration(file
ConfigurationUserLevel None)
ConfigSectionData data = new ConfigSectionData()
data Id = ;
data Time = DateTime Now;
config SectionGroups Add( group new ConfigurationSectionGroup())
config SectionGroups[ group ] Sections Add( add data)
config Save(ConfigurationSaveMode Minimal)
下面就是生成的配置文件
读取配置文件
ExeConfigurationFileMap file = new ExeConfigurationFileMap()
file ExeConfigFilename = nfig ;
Configuration config = ConfigurationManager OpenMappedExeConfiguration(file ConfigurationUserLevel None) -.net网站配置文件
ConfigSectionData data = config SectionGroups[ group ] Sections[ add ] as ConfigSectionData;
//ConfigSectionData data = config Sections[ add ] as ConfigSectionData; // 从根节读取
if (data != null)
{
Console WriteLine(data Id)
Console WriteLine(data Time)
}
写配置文件
在写入 ConfigurationSectionGroup 和 ConfigurationSection 前要判断同名配置是否已经存在 否则会写入失败 另外如果配置文件被其他Configuration对象修改 则保存会失败 并抛出异常 建议采用Singleton模式 ExeConfigurationFileMap file = new ExeConfigurationFileMap() -.net网站配置文件
file ExeConfigFilename = nfig ;
Configuration config = ConfigurationManager OpenMappedExeConfiguration(file ConfigurationUserLevel None) -.net网站配置文件
ConfigSectionData data = new ConfigSectionData()
data Id = ;
data Time = DateTime Now;
ConfigurationSectionGroup group = config SectionGroups[ group ];
if (group == null)
config SectionGroups Add( group new ConfigurationSectionGroup())
ConfigurationSection data = group Sections[ add ] as config;
if (add == null)
config SectionGroups[ group ] Sections Add( add data)
else
{
group Sections Remove( add )
group Sections Add( add data)
// 或者直接修改原配置对象 前提是类型转换要成功
//ConfigSectionData configData = add as ConfigSectionData;
//configData Id = data Id;
//configData Time = data Time;
}
config Save(ConfigurationSaveMode Minimal)
删除配置节
删除ConfigurationSectionGroup config SectionGroups Remove( group )
//config SectionGroups Clear()
config Save(ConfigurationSaveMode Minimal)
删除ConfigurationSection config Sections Remove( add )
//config Sections Clear()
if (config SectionGroups[ group ] != null)
{
config SectionGroups[ group ] Sections Remove( add )
//config SectionGroups[ group ] Sections Clear()
}
config Save(ConfigurationSaveMode Minimal) 其他
可以使用 ConfigurationManager OpenMachineConfiguration() 来操作 nfig 文件 或者使用 System Web Configuration 名字空间中的 WebConfigurationManager 类来操作 配置文件 -.net网站配置文件
ConfigurationManager还提供了AppSettings ConnectionStrings GetSection()等便捷操作 使用自定义类
比如ConfigSectionData里面 除了简单类型之外 可不可以有自定义的类? 可以使用自定义类 不过需要定义一个转换器 using System;
using System Collections;
using System Collections Generic;
using System Configuration;
using System Globalization;
using System ComponentModel;
// 要写入配置文件的自定义类
class CustomData
{
public CustomData(string s)
{
this s = s;
}
private string s;
public string S
{
get { return s; }
set { s = value; }
}
}
// 自定义的转换器(演示代码省略了类型判断)
class CustomConvert : ConfigurationConverterBase
{
public override bool CanConvertFrom(ITypeDescriptorContext ctx Type type)
{
return (type == typeof(string))
}
public override object ConvertTo(ITypeDescriptorContext ctx CultureInfo ci object value Type type)
{
return (value as CustomData) S;
}
public override object ConvertFrom(ITypeDescriptorContext ctx CultureInfo ci object data)
{
return new CustomData((string)data)
}
}
class ConfigSectionData : ConfigurationSection
{
[ConfigurationProperty( id )]
public int Id
{
get { return (int)this[ id ]; }
set { this[ id ] = value; }
}
[ConfigurationProperty( time )]
public DateTime Time
{
get { return (DateTime)this[ time ]; }
set { this[ time ] = value; }
}
[ConfigurationProperty( custom )]
[TypeConverter(typeof(CustomConvert))] // 指定转换器
public CustomData Custom
{
get { return (CustomData)this[ custom ]; }
set { this[ custom ] = value; }
}
}
public class Program
{
static void Main(string[] args)
{
Configuration config = ConfigurationManager OpenExeConfiguration (ConfigurationUserLevel None)
ConfigSectionData data = new ConfigSectionData()
data Id = ;
data Time = DateTime Now;
data Custom = new CustomData( abcdefg… )
config Sections Add( add data)
config Save(ConfigurationSaveMode Minimal)
// 读取测试
ConfigSectionData configData = (ConfigSectionData)config Sections[ add ];
Console WriteLine(configData Custom S)
}
lishixinzhi/Article/program/net/201311/13806
ASP.NET中常用的文件类型有哪些?
ASP.NET 是由微软开发的Web应用程序框架。ASP.NET 中使用的一些常见文件类型包括:
.aspx:这是 ASP.NET 网页的文件扩展名。ASPX 文件通常用 C# 或 Visual Basic 编写,并包含 HTML、服务器端脚本和服务器端代码的混合。
.ascx:这是 ASP.NET 用户控件的文件扩展名。ASCX 文件通常用于创建可包含在多个 ASPX 页中的可重用组件。
.asmx:这是 ASP.NET Web 服务的文件扩展名。ASMX文件包含可以使用简单对象访问协议(SOAP)或具象状态传输(REST)协议通过Web远程访问的代码。
.config:这是 ASP.NET 配置文件的文件扩展名。CONFIG 文件包含有关如何配置 ASP.NET 应用程序的信息,例如数据库连接字符串、应用程序设置和其他详细信息。
.master:这是 ASP.NET 母版页的文件扩展名。MASTER 文件定义应用程序中一个或多个 ASPX 页的公共布局和结构。