×

.net网站配置文件

.net网站配置文件(net core consul 配置中心)

admin admin 发表于2023-04-06 11:01:07 浏览49 评论0

抢沙发发表评论

本文目录一览:

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 页的公共布局和结构。