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-shellattribute-command