Fdw.Data.Options 1.5.7

dotnet add package Fdw.Data.Options --version 1.5.7
                    
NuGet\Install-Package Fdw.Data.Options -Version 1.5.7
                    
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="Fdw.Data.Options" Version="1.5.7" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Fdw.Data.Options" Version="1.5.7" />
                    
Directory.Packages.props
<PackageReference Include="Fdw.Data.Options" />
                    
Project file
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 Fdw.Data.Options --version 1.5.7
                    
#r "nuget: Fdw.Data.Options, 1.5.7"
                    
#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 Fdw.Data.Options@1.5.7
                    
#: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=Fdw.Data.Options&version=1.5.7
                    
Install as a Cake Addin
#tool nuget:?package=Fdw.Data.Options&version=1.5.7
                    
Install as a Cake Tool

Fdw.Data.Options

Data options: the kinds of option a person with the right permission can turn on or off for a value in a column of a data container, and what applying each one does.

FDW supplies the kinds of option and what applying them does. It does not own the table that holds the stored options; DataOptionRowFields names the fields a reader expects (DataStore, Container, Column, Value, OptionType, Option, Active).

Resolve an option from stored text

var option = DataOptions.ByName(row.OptionType).ByName(row.Option);
var result = option.Apply(new DataOptionContext(
    dataStore, container, column, row.OptionType, row.Option, row.Value, row.IsActive, valuesSoFar, logger));

An unknown option type or option gives the collection's NotFound sentinel, whose Apply returns a failure (DATAOPTION-31000 and DATAOPTION-30000); nothing throws. A row that needs a value and has none fails DATAOPTION-20000.

Shape

  • DataOptions is the root collection of option types. A member is a dispatcher (ByName(optionName), Options), like DefaultValues in Fdw.Data.Abstractions.
  • SelectList is the first option type. Its child collection SelectListOptions has Include (puts the value in the list) and Exclude (takes it out).
  • Apply returns IGenericResult<DataOptionOutcome>. DataOptionOutcome is not generic on its type, because a caller holds only strings read from rows; SelectListOutcome carries the resulting list.
  • An inactive row changes nothing. Values compare exactly (ordinal) and are never listed twice. Exclude applies after Include (IDataOption.ApplyOrder), so the list does not depend on the order the rows were read in.

Registration. SelectList joins DataOptions from Fdw.Data.Options, a different assembly from the root, so the registration is written into the executable that references both, by the Fdw.Registration.SourceGenerators analyzer (OutputItemType="Analyzer"), as it is for every cross-assembly type option. A host or test executable without that generator finds DataOptions.ByName("SelectList") is the NotFound sentinel, and Apply fails with DATAOPTION-31000; it is a loud failure, never a default. Library projects need nothing.

Another package adds an option type with [TypeOption(typeof(DataOptions), "Name")], or an option of SelectList with [TypeOption(typeof(SelectListOptions), "Name")].

The ReadDataOptions pipeline step (Fdw.Services.Etl) reads the stored rows for a column and keeps the resulting list in a variable.

Product Compatible and additional computed target framework versions.
.NET 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.

NuGet packages (24)

Showing the top 5 NuGet packages that depend on Fdw.Data.Options:

Package Downloads
Fdw.Services.Etl

Development tools and utilities for the Fdw ecosystem.

Fdw.Operations.Endpoints

Development tools and utilities for the Fdw ecosystem.

Fdw.Services.Users.Endpoints

Development tools and utilities for the Fdw ecosystem.

Fdw.Services.Data.Endpoints

Development tools and utilities for the Fdw ecosystem.

Fdw.Services.Etl.Projects

Development tools and utilities for the Fdw ecosystem.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.5.7 95 11/13/2026