Exemple #1
0
        public static void AddType <T>(string alias)
        {
            Requires.NotNullOrEmpty(alias, "alias");

            AssemblyManager.AddType(alias, typeof(T));
        }
Exemple #2
0
 public static Type GetType(string name)
 {
     return(AssemblyManager.GetType(name));
 }
Exemple #3
0
 public static bool HasType(string name)
 {
     return(AssemblyManager.HasType(name));
 }
Exemple #4
0
        public static void Initialize(ScriptConfiguration configuration)
        {
            if (IsInitialized)
            {
                return;
            }

            if (Parser == null)
            {
                Parser = new Parser.FastGrammar.LRParser();
            }

            Lock();
            try
            {
                _configuration = configuration;

                if (Binder == null)
                {
                    Binder = new DefaultObjectBinding();
                }

                if (Activator == null)
                {
                    Activator = new ObjectActivator();
                }

                InitializeSettingItems();
                RegisterOperators();

                if (ScopeFactory == null)
                {
                    ScopeFactory = Activator.CreateInstance(GetNativeType(GetSettingsItem <string>(ConfigSchema.ScopeFactoryAttribute))) as IScopeFactory;
                }

                RegisterScopes();

                if (AssemblyManager == null)
                {
                    AssemblyManager = new DefaultAssemblyManager();
                }

                OnInitializingTypes(AssemblyManager);
                AssemblyManager.Initialize(_configuration);

                if (!string.IsNullOrEmpty(_configuration.Initialization))
                {
                    _initializationScript = Script.Compile(_configuration.Initialization);
                }

                RegisterOperatorHandler("+=", new EventOperatorHandler(true));
                RegisterOperatorHandler("-=", new EventOperatorHandler(false));

                SSharp.Parser.Ast.ScriptExpr.HandleOperator += HandleOperator;
            }
            finally
            {
                IsInitialized = true;
                UnLock();
            }
        }