/// <summary> /// Creates a new WrapperClient instance. /// </summary> /// <param name="formatter">Formatter instance for data serialization to the pipe.</param> /// <param name="wrapperProcessStarter">WrapperProcessStarter instance for invoking the appropriate wrapper executable.</param> /// <param name="pipeStreamFactory">A factory instance to create a new NamedPipeClientStream.</param> /// <param name="pipeToken">PipeToken instance for creating pipe connections.</param> /// <param name="wrapperConfig">the wrapperconfig</param> public PipeConnector(IFormatter formatter, IWrapperProcessStarter wrapperProcessStarter, PipeStreamFactory pipeStreamFactory, PipeToken pipeToken, IWrapperConfig wrapperConfig) { Raise.ArgumentNullException.IfIsNull(formatter, nameof(formatter)); Raise.ArgumentNullException.IfIsNull(wrapperProcessStarter, nameof(wrapperProcessStarter)); Raise.ArgumentNullException.IfIsNull(pipeStreamFactory, nameof(pipeStreamFactory)); Raise.ArgumentNullException.IfIsNull(pipeToken, nameof(pipeToken)); _formatter = formatter; _wrapperProcessStarter = wrapperProcessStarter; _pipeStreamFactory = pipeStreamFactory; _pipeToken = pipeToken; _wrapperProcessStarter.StartWrapperProcess(); OpenPipe(wrapperConfig.Timeout); }