@@ -29,34 +29,36 @@ public void Start()
2929 {
3030 using ( var server = new NamedPipeServerStream ( _pipeName , PipeDirection . InOut , 1 ) )
3131 using ( var reader = new BinaryReader ( server ) )
32- using ( var writer = new StreamWriter ( server ) )
32+ using ( var writer = new BinaryWriter ( server ) )
3333 {
3434 while ( true )
3535 {
3636 _logger . LogInformation ( "IPC service started. Waiting for connection" ) ;
3737 server . WaitForConnection ( ) ;
3838
39+ _logger . LogDebug ( "client connected" ) ;
3940 try
4041 {
41- _logger . LogDebug ( "client connected" ) ;
42-
43- int length = reader . ReadInt32 ( ) ;
44- byte [ ] bytes = reader . ReadBytes ( length ) ;
45- string json = Encoding . UTF8 . GetString ( bytes ) ;
46- IpcRequest request = JsonConvert . DeserializeObject < IpcRequest > ( json ) ;
47-
48- _logger . LogDebug ( "request received, invoking corresponding method..." ) ;
49- IpcResponse response ;
5042 using ( IServiceScope scope = _serviceProvider . CreateScope ( ) )
5143 {
52- response = GetReponse ( request , scope ) ;
53- }
44+ IIpcMessageSerializer serializer = scope . ServiceProvider . GetRequiredService < IIpcMessageSerializer > ( ) ;
5445
55- _logger . LogDebug ( "sending response..." ) ;
56- string resultJson = JsonConvert . SerializeObject ( response ) ;
57- writer . Write ( resultJson ) ;
58- writer . Flush ( ) ;
59- server . Disconnect ( ) ;
46+ int requestLength = reader . ReadInt32 ( ) ;
47+ byte [ ] requestBin = reader . ReadBytes ( requestLength ) ;
48+ IpcRequest request = serializer . DeserializeRequest ( requestBin ) ;
49+
50+ _logger . LogDebug ( "request received, invoking corresponding method..." ) ;
51+ IpcResponse response = GetReponse ( request , scope ) ;
52+
53+ _logger . LogDebug ( "sending response..." ) ;
54+ byte [ ] responseBin = serializer . SerializeResponse ( response ) ;
55+ writer . Write ( responseBin . Length ) ;
56+ writer . Write ( responseBin ) ;
57+ writer . Flush ( ) ;
58+
59+ // disconnect client
60+ server . Disconnect ( ) ;
61+ }
6062 }
6163 catch ( Exception ex )
6264 {
0 commit comments