public Executor( IConfigurationProvider configuration, TContext context, TState state) { configuration.EnsureNotNull("configuration"); state.EnsureNotNull("state"); _stateConfigList = configuration.States.Select(s => new StateConfiguration(s)).ToArray(); _eventConfigList = configuration.Events.Select(e => new EventConfiguration(e)).ToArray(); Context = context; State = state; OnEnter(); }