/// <summary> /// Does not include OriginalInput or Tokens because they could contain passwords<br/> /// WARN: includeOriginalArgs could expose passwords. /// </summary> public string ToString(Indent indent, bool includeOriginalArgs) { // Do not include OriginalInput or Tokens because they // could contain passwords. // Use ParseResults instead if needed indent = indent.Increment(); var insecure = includeOriginalArgs ? $"{indent}Original.Args:{Original.Args.ToCsv(" ")}{NewLine}" + $"{indent}{nameof(Tokens)}:{Tokens.ToArgsArray().ToCsv(" ")}{NewLine}" : ""; return($"{nameof(CommandContext)}:{NewLine}" + $"{indent}{nameof(RootCommand)}:{RootCommand}{NewLine}" + $"{indent}{nameof(ShowHelpOnExit)}:{ShowHelpOnExit}{NewLine}" + $"{insecure}" + $"{indent}{nameof(ParseResult)}:{ParseResult?.ToString(indent.Increment())}{NewLine}" + $"{indent}{nameof(InvocationPipeline)}:{InvocationPipeline?.ToString(indent.Increment())}{NewLine}"); }
private InvocationPipeline CreatePipeline <TService>( TService instace, string methodName, MethodBoundaryAspect[] boundaryAspects, params object[] arguments) { var invocation = new ObservableInvocation(typeof(TService), instace, methodName, arguments); var pipeline = new InvocationPipeline( new InvocationSignature( invocation.Method, invocation.TargetMethod, invocation.DeclaringType, invocation.TargetType, invocation.InvocationType), boundaryAspects, BypassMethodAspect.Instance); pipeline.Init(invocation); return(pipeline); }