Example #1
0
        private void Init(IEntrypoint entrypoint)
        {
            Entrypoint = entrypoint;
            var constructor = Export.GetConstructors().Single();

            Import = constructor.GetParameters().OrderBy(p => p.Position).Select(p => p.ParameterType).ToArray();
        }
 public EntrypointWithSettingThunk(
     IEntrypoint <TSettings> actualEntrypoint,
     TSettings settings)
 {
     this.actualEntrypoint = actualEntrypoint;
     this.settings         = settings;
 }
Example #3
0
        private int LoadInput(IEntrypoint entry, int[] inputArgs, object[] input)
        {
            int i = 0;

            for (; i < inputArgs.Length; ++i)
            {
                var idx = inputArgs[i];
                var d   = _exportInstances[idx];
                if (entry.ImportIsOption[i])
                {
                    var opt = _exportOptionInstances[idx];
                    if (opt == null)
                    {
                        opt = (Option)(_exportInstanceIsNone[idx] ?
                                       _meta.ExportOptionNoneFactories[idx]() :
                                       _meta.ExportOptionSomeFactories[idx](d));
                        _exportOptionInstances[idx] = opt;
                    }
                    d = opt;
                }
                else if (_exportInstanceIsNone[idx])
                {
                    break;
                }
                input[i] = d;
            }

            return(i);
        }
Example #4
0
 private void SaveOutput(IEntrypoint entry, int[] outputArgs, object[] output)
 {
     for (int i = 0; i < outputArgs.Length; ++i)
     {
         var idx = outputArgs[i];
         if (entry.ExportIsOption[i])
         {
             var e = (Option)output[i];
             _exportInstances[idx]       = e.Value;
             _exportInstanceIsNone[idx]  = !e.HasValue;
             _exportOptionInstances[idx] = e;
         }
         else
         {
             _exportInstances[idx]      = output[i];
             _exportInstanceIsNone[idx] = false;
         }
     }
 }
Example #5
0
 public SwComponentInfo(SwComponentPriorityEnum priority, IEntrypoint entrypoint)
 {
     Priority = priority;
     Init(entrypoint);
 }