public CSharpScriptImplementation(ScriptClassTemplate classTemplate, ICompiler compiler)
        {
            _classTemplate = classTemplate;
            _compiler      = compiler;

            SourcePreprocessors = new List <ISourcePreprocessor>();
        }
        public ScriptClassSourceGenerator(ScriptClassTemplate template, CSharpScriptClassDefinition scriptClassDefinition)
        {
            Ensure.IsNotNull(template, nameof(template));
            Ensure.IsNotNull(scriptClassDefinition, nameof(scriptClassDefinition));

            _template = template;
            _scriptClassDefinition = scriptClassDefinition;
        }
        public ClassSyntaxTreeBuilder(ScriptClassTemplate template, string nameSpace, string className, IEnumerable <string> scriptUsings)
        {
            Ensure.IsNotNull(template, nameof(template));
            Ensure.IsNotNullOrWhitespace(nameSpace, nameof(nameSpace));
            Ensure.IsNotNullOrWhitespace(className, nameof(className));
            Ensure.IsNotNull(scriptUsings, nameof(scriptUsings));

            _template     = template;
            _nameSpace    = nameSpace;
            _className    = className;
            _scriptUsings = scriptUsings;
        }