public ComponentDefinition Add(Type tyComp, params object[] initParms)
        {
            ComponentDefinition compDef = new ComponentDefinition(tyComp, initParms);

            _children.Add(compDef);
            return(compDef);
        }
        public ComponentDefinition Add(CompBase comp)
        {
            ComponentDefinition compDef = new ComponentDefinition(comp);

            _children.Add(compDef);
            return(compDef);
        }
        public ComponentDefinition Add(Type tyComp, string name)
        {
            ComponentDefinition compDef = new ComponentDefinition(tyComp, name);

            _children.Add(compDef);
            return(compDef);
        }
        public ComponentDefinition Add(Enum plugin, params object[] initParms)
        {
            ComponentDefinition compDef = new ComponentDefinition(plugin, initParms);

            _children.Add(compDef);
            return(compDef);
        }
        public ComponentDefinition Add(Type baseType, string pluginName, params object[] initParms)
        {
            ComponentDefinition compDef = new ComponentDefinition(baseType, pluginName, initParms);

            _children.Add(compDef);
            return(compDef);
        }
Пример #6
0
        /// <summary>
        /// Add Sim class pairings for all unloaded plugin classes
        /// </summary>
        /// <param name="compDef"></param>
        /// <param name="unresolvedPlugins"></param>
        private void CreateSimClasses(ComponentDefinition compDef, List <ComponentDefinition> unresolvedPlugins)
        {
            if (unresolvedPlugins.Count == 0)
            {
                return;
            }
            //
            // Create classes for unresolved plugins
            //
            List <string> listSources = new List <string>();

            foreach (ComponentDefinition def in unresolvedPlugins)
            {
                listSources.Add(GetSimSource(def.PluginBaseType, def.PluginName, string.Empty));
                listSources.Add(GetSimSource(def.PluginBaseType, def.PluginName, CompBase.Sim));
            }

            Type[] createdTypes = CompileClasses(compDef.Name, listSources);
            s_pluginCompTypes.AddRange(createdTypes);

            compDef.AssignUnresolvedPlugin(createdTypes);
        }
Пример #7
0
        public void Add(ComponentDefinition compDef, eCleanUpMode cleanUpMode = eCleanUpMode.None)
        {
            foreach (Type tyLoaded in s_loadedCompTypes)
            {
                compDef.ConfirmNotPluginType(tyLoaded);
            }
            foreach (Type tyPlugIn in s_pluginCompTypes)
            {
                compDef.AssignPlugInType(tyPlugIn);
            }

            List <ComponentDefinition> unresolvedPlugins = new List <ComponentDefinition>();

            compDef.GetUnloadedPlugins(unresolvedPlugins);
            // Assigns Sims, adds overrides to Serializer
            CreateSimClasses(compDef, unresolvedPlugins);

            AppStatus(string.Format("Reading {0}", compDef.Name));

            //
            CompBase compRead = ReadXmlFile(compDef.CompType, compDef.Name);

            if (compRead == null)
            {
                compRead = Activator.CreateInstance(compDef.CompType, compDef.Name) as CompBase;
            }
            else
            {
                CompBase child = Activator.CreateInstance(compDef.CompType, compDef.Name) as CompBase;
                compDef.CreateComponents(child);
                RecurseCleanUpChild(child, compRead, cleanUpMode);
            }
            compDef.CreateComponents(compRead);
            base.Add(compRead);
            compRead.Initialize();
        }