public async Task TestUsePackageHandlingContextAccessor() { ISuperSocketHostBuilder <StringPackageInfo> superSocketHostBuilder = CreateSocketServerBuilder <StringPackageInfo, CommandLinePipelineFilter>() .UseCommand(commandOptions => { commandOptions.AddCommand <TestCommand>(); }) .UsePackageHandlingContextAccessor(); using (var server = superSocketHostBuilder.BuildAsServer()) { var packageHandlingContextAccessor = server.ServiceProvider.GetService <IPackageHandlingContextAccessor <StringPackageInfo> >(); Assert.NotNull(packageHandlingContextAccessor); Assert.Equal("TestServer", server.Name); Assert.True(await server.StartAsync()); OutputHelper.WriteLine("Server started."); var client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); await client.ConnectAsync(GetDefaultServerEndPoint()); OutputHelper.WriteLine("Connected."); await Task.Delay(1000); using (var stream = new NetworkStream(client)) using (var streamReader = new StreamReader(stream, Utf8Encoding, true)) using (var streamWriter = new StreamWriter(stream, Utf8Encoding, 1024 * 1024 * 4)) { await streamWriter.WriteAsync("TestCommand Package 1\r\n"); await streamWriter.FlushAsync(); OutputHelper.WriteLine("send 'Package 1'."); var line = await streamReader.ReadLineAsync(); Assert.Equal("Package 1", line); await streamWriter.WriteAsync("TestCommand Package 2\r\n"); await streamWriter.FlushAsync(); OutputHelper.WriteLine("send 'Package 2'."); line = await streamReader.ReadLineAsync(); Assert.Equal("Package 2", line); } await server.StopAsync(); } }