public Tool(ToolLinker linkedTools, ObjectTemplater templater, IEnumerable <ITool> tools) { this.LinkedTools = linkedTools; this.Templater = templater; this.ToolSelector = new ToolSelector(this, templater, tools); this.SelectMethod = typeof(Tool).GetMethods().First(m => m.Name.Contains(nameof(Change)) && m.GetParameters().Length == 2); }
public ToolSelector(Tool tool, ObjectTemplater templater, IEnumerable <ITool> tools) { this.Tools = tools .Append(new EnumerableTool(tool)) .Append(new ObjectTool(templater, tool)) .ToList(); this.SpecializedTools = new Dictionary <Type, TypedTools>(); }
public ObjectTool(ObjectTemplater templater, Tool tool) { this.Templater = templater; this.Tool = tool; }