Environments
Toolshed’s primary method of controling which commands are available (which dictates everything from parsing to execution flow) is through ToolshedEnvironment
. The default environment lives at ToolshedManager.DefaultEnvironment
, and contains every command with the [Toolshedcommand]
attribute applied.
Best practices
- Cache your environments,
ToolshedEnvironment
is extremely expensive to create and should not be created more than once per system using them if possible. - Avoid using the default environment for non-debug things, construct your own environment for your systems.
- Don’t abuse reflection to obtain command types that’re marked internal or private, internal APIs are guaranteed to be unstable.