Example #1
0
        internal DlrConfiguration ToConfiguration()
        {
            ContractUtils.Requires(_languageSetups.Count > 0, "ScriptRuntimeSetup must have at least one LanguageSetup");

            // prepare
            ReadOnlyCollection <LanguageSetup> setups = new ReadOnlyCollection <LanguageSetup>(ArrayUtils.MakeArray(_languageSetups));
            var hostArguments = new ReadOnlyCollection <object>(ArrayUtils.MakeArray(_hostArguments));
            var options       = new Scripting.Utils.ReadOnlyDictionary <string, object>(new Dictionary <string, object>(_options));
            var config        = new DlrConfiguration(_debugMode, _privateBinding, options);

            // validate
            foreach (var language in setups)
            {
                config.AddLanguage(
                    language.TypeName,
                    language.DisplayName,
                    language.Names,
                    language.FileExtensions,
                    language.Options
                    );
            }

            // commit
            _languageSetups = setups;
            _options        = options;
            _hostArguments  = hostArguments;

            Freeze(setups);

            return(config);
        }
        internal DlrConfiguration ToConfiguration() {
            ContractUtils.Requires(_languageSetups.Count > 0, "ScriptRuntimeSetup must have at least one LanguageSetup");

            // prepare
            ReadOnlyCollection<LanguageSetup> setups = new ReadOnlyCollection<LanguageSetup>(ArrayUtils.MakeArray(_languageSetups));
            var hostArguments = new ReadOnlyCollection<object>(ArrayUtils.MakeArray(_hostArguments));
            var options = new Scripting.Utils.ReadOnlyDictionary<string, object>(new Dictionary<string, object>(_options));            
            var config = new DlrConfiguration(_debugMode, _privateBinding, options);

            // validate
            foreach (var language in setups) {
                config.AddLanguage(
                    language.TypeName,
                    language.DisplayName,
                    language.Names,
                    language.FileExtensions,
                    language.Options
                );
            }

            // commit
            _languageSetups = setups;
            _options = options;
            _hostArguments = hostArguments;

            Freeze(setups);

            return config;
        }