OutWit.Common.Settings.Csv
2.0.2
dotnet add package OutWit.Common.Settings.Csv --version 2.0.2
NuGet\Install-Package OutWit.Common.Settings.Csv -Version 2.0.2
<PackageReference Include="OutWit.Common.Settings.Csv" Version="2.0.2" />
<PackageVersion Include="OutWit.Common.Settings.Csv" Version="2.0.2" />
<PackageReference Include="OutWit.Common.Settings.Csv" />
paket add OutWit.Common.Settings.Csv --version 2.0.2
#r "nuget: OutWit.Common.Settings.Csv, 2.0.2"
#:package OutWit.Common.Settings.Csv@2.0.2
#addin nuget:?package=OutWit.Common.Settings.Csv&version=2.0.2
#tool nuget:?package=OutWit.Common.Settings.Csv&version=2.0.2
OutWit.Common.Settings.Csv
Overview
OutWit.Common.Settings.Csv is a CSV file storage provider for the OutWit.Common.Settings framework. It enables storing and loading application settings in tabular CSV format, ideal for scenarios where settings need to be easily editable in spreadsheet applications or processed by external tools.
Features
1. Simple Integration
Use the UseCsv() extension method to configure CSV storage with conventional defaults:
var manager = new SettingsBuilder()
.UseCsv() // Uses {AppContext.BaseDirectory}/Resources/settings.csv
.RegisterContainer<NetworkSettings>()
.Build();
manager.Merge();
manager.Load();
2. Custom File Paths
Specify custom paths for defaults and scope-specific files:
var manager = new SettingsBuilder()
.UseCsv("path/to/defaults.csv")
.Build();
Or add individual CSV files for specific scopes:
builder.UseCsvFile("config/global-settings.csv", SettingsScope.Global);
builder.UseCsvFile("config/user-settings.csv", SettingsScope.User);
3. CSV File Format
Settings are stored in a simple tabular format with the following columns:
Group,Key,Value,ValueKind,Tag,Hidden
NetworkSettings,ApiEndpoint,http://localhost:5000,ServiceUrl,,False
NetworkSettings,ProxyUrl,,Url,,False
NetworkSettings,ConnectionTimeout,00:00:30,TimeSpan,,False
NetworkSettings,MaxRetries,3,Integer,,False
Columns:
Group- Settings group nameKey- Setting key/property nameValue- Serialized valueValueKind- Type identifier for deserializationTag- Optional metadata (e.g., enum type for Enum values)Hidden- Whether to hide from UI
4. Group Metadata
Group metadata can be stored in a separate file (settings.groups.csv):
Group,DisplayName,Priority
NetworkSettings,Network,0
Security,Security Settings,5
5. Spreadsheet-Friendly
CSV format allows easy editing in Excel, Google Sheets, or any text editor.
Installation
Install the package via NuGet:
Install-Package OutWit.Common.Settings.Csv
Dependencies:
OutWit.Common.SettingsCsvHelper
License
Licensed under the Apache License, Version 2.0. See LICENSE.
Attribution (optional)
If you use OutWit.Common.Settings.Csv in a product, a mention is appreciated (but not required), for example: "Powered by OutWit.Common.Settings.Csv (https://ratner.io/)".
Trademark / Project name
"OutWit" and the OutWit logo are used to identify the official project by Dmitry Ratner.
You may:
- refer to the project name in a factual way (e.g., "built with OutWit.Common.Settings.Csv");
- use the name to indicate compatibility (e.g., "OutWit.Common.Settings.Csv-compatible").
You may not:
- use "OutWit.Common.Settings.Csv" as the name of a fork or a derived product in a way that implies it is the official project;
- use the OutWit.Common.Settings.Csv logo to promote forks or derived products without permission.
| 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 is compatible. 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. |
-
net10.0
- CsvHelper (>= 33.1.0)
- OutWit.Common.Settings (>= 2.0.2)
-
net8.0
- CsvHelper (>= 33.1.0)
- OutWit.Common.Settings (>= 2.0.2)
-
net9.0
- CsvHelper (>= 33.1.0)
- OutWit.Common.Settings (>= 2.0.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.