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; }
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); }
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; } } }
public SwComponentInfo(SwComponentPriorityEnum priority, IEntrypoint entrypoint) { Priority = priority; Init(entrypoint); }