示例#1
0
        /// <summary>
        /// Construct data from used components with ISobaCLoader.
        /// </summary>
        /// <param name="cLoader"></param>
        public Inspector(ISobaCLoader cLoader)
        {
            this.cLoader = cLoader;
            foreach (IComponent c in cLoader.Registered)
            {
#if DEBUG
                LSender.Send(this, $"extracting from '{c.GetType().Name}'", MsgLevel.Trace);
#endif
                Extract(c, data);
            }

            if (data.Count < 1)
            {
                return;
            }

            // Aliases to components
            foreach (var root in data[new NodeIdent()])
            {
                if (root.Aliases == null)
                {
                    continue;
                }
                foreach (string alias in root.Aliases)
                {
                    data[new NodeIdent(alias, root.Link.method, root.Link.className)] = data[root.Link]; //shallow copies
                }
            }
        }
        public Binder(ICommand cmd, ISobaCLoader loader)
        {
            Cmd     = cmd ?? throw new ArgumentNullException(nameof(cmd));
            cLoader = loader ?? throw new ArgumentNullException(nameof(loader));

            projects = new Dictionary <string, EOProject>();
            attachLoggingEvent();
        }
示例#3
0
            public ToolContext(IEnvironment env)
            {
                Log.Trace("Initialization of the clean context for testing.");

                var soba = new Soba(MSBuild.MakeEvaluator(env, uvars), uvars);

                Bootloader._.Configure(soba);

                cloader   = soba;
                inspector = new Inspector(soba);
                script    = soba;
                msbuild   = soba.EvMSBuild;
            }
示例#4
0
 internal Binder(ICommand cmd, ISobaCLoader loader, CancelBuildState state)
     : this(cmd, loader)
 {
     buildState = state ?? throw new ArgumentNullException(nameof(state));
 }