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.

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

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

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.

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