Apq.Cfg.Xml
1.2.1
dotnet add package Apq.Cfg.Xml --version 1.2.1
NuGet\Install-Package Apq.Cfg.Xml -Version 1.2.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Apq.Cfg.Xml" Version="1.2.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Apq.Cfg.Xml" Version="1.2.1" />
<PackageReference Include="Apq.Cfg.Xml" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Apq.Cfg.Xml --version 1.2.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Apq.Cfg.Xml, 1.2.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Apq.Cfg.Xml@1.2.1
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Apq.Cfg.Xml&version=1.2.1
#tool nuget:?package=Apq.Cfg.Xml&version=1.2.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Apq.Cfg.Xml
XML 文件配置源扩展包。
仓库地址:https://gitee.com/apq/Apq.Cfg
📖 在线文档:https://apq-cfg.vercel.app/
依赖
- Apq.Cfg
- Microsoft.Extensions.Configuration.Xml(版本随目标框架:net8.0→8.0.0, net10.0→10.0.1)
默认层级
该配置源的默认层级为 CfgSourceLevels.Xml (0)。
如果不指定 level 参数,将使用默认层级:
// 使用默认层级 0
.AddXmlFile("config.xml")
// 指定自定义层级
.AddXmlFile("config.xml", level: 50)
用法
using Apq.Cfg;
using Apq.Cfg.Xml;
var cfg = new CfgBuilder()
.AddXmlFile("config.xml", level: 0, writeable: true)
.Build();
// 使用索引器访问
var appName = cfg["AppName"];
// 使用配置节
var db = cfg.GetSection("Database");
var connStr = db["ConnectionString"];
var timeout = db.GetValue<int>("Timeout");
方法签名
public static CfgBuilder AddXml(
this CfgBuilder builder,
string path,
int level = CfgSourceLevels.Xml, // 默认 0
bool writeable = false,
bool optional = true,
bool reloadOnChange = true,
bool isPrimaryWriter = false)
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
path |
XML 文件路径 | - |
level |
配置层级,数值越大优先级越高 | 0 |
writeable |
是否可写 | false |
optional |
文件不存在时是否忽略 | true |
reloadOnChange |
文件变更时是否自动重载 | true |
isPrimaryWriter |
是否为默认写入目标 | false |
XML 格式示例
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<AppName>MyApp</AppName>
<Database>
<ConnectionString>Server=localhost;Database=mydb</ConnectionString>
<Timeout>30</Timeout>
</Database>
<Logging>
<Level>Information</Level>
</Logging>
</configuration>
配置键映射:
<AppName>→"AppName"<Database><ConnectionString>→"Database:ConnectionString"<Logging><Level>→"Logging:Level"
许可证
MIT License
作者
- 邮箱:amwpfiqvy@163.com
仓库
- Gitee:https://gitee.com/apq/Apq.Cfg
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- Apq.Cfg (>= 1.2.1)
- Microsoft.Extensions.Configuration.Xml (>= 10.0.1)
-
net8.0
- Apq.Cfg (>= 1.2.1)
- Microsoft.Extensions.Configuration.Xml (>= 8.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.