Configuration ============= **Energy.Core.Configuration** provides configuration loading and command-line argument mapping. It is a lightweight container for options and elements. Options ------- A configuration object contains an `Options` list of `Energy.Core.Configuration.Option` entries. ```csharp Energy.Core.Configuration config = new Energy.Core.Configuration(); Energy.Core.Configuration.Option option = config.Options.Add("output"); option.Value = "result.txt"; option.Switch = false; ``` Elements -------- ```csharp Energy.Core.Configuration.Element element = config["Section"]; if (element != null) { Console.WriteLine(element.Value); } Energy.Core.Configuration.Element first = config.Select("name", "title", "label"); ``` Loading ------- ```csharp config.Load("settings.conf"); config.Load(connection); // from Energy.Source.Configuration ``` Create from attributes ---------------------- The static `Create` method builds a configuration object from command-line arguments using fields and properties decorated with `Energy.Attribute.Command.OptionAttribute`. ```csharp public class MyOptions { [Energy.Attribute.Command.Option("input", Short = "i")] public string Input; [Energy.Attribute.Command.Option("output", Short = "o")] public string Output; } MyOptions options = (MyOptions)Energy.Core.Configuration.Create(args, typeof(MyOptions)); ``` File information ---------------- The nested `Configuration.File` class stores file metadata (`FileName`, `FilePath`, `FileStamp`, `FileSize`). See also -------- - `core-shell` - `attribute-command`