Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
…amework into develop
  • Loading branch information
jacqueskang committed Jun 30, 2018
2 parents a59044a + 43d5fb9 commit 8925593
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 15 deletions.
4 changes: 2 additions & 2 deletions src/JKang.IpcServiceFramework.Client/IpcServiceClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,8 @@ private static IpcRequest GetRequest(Expression exp, MyInterceptor interceptor)
private async Task<IpcResponse> GetResponseAsync(IpcRequest request)
{
using (var client = new NamedPipeClientStream(".", _pipeName, PipeDirection.InOut, PipeOptions.None))
using (var writer = new IpcWriter(client, _serializer))
using (var reader = new IpcReader(client, _serializer))
using (var writer = new IpcWriter(client, _serializer, leaveOpen: true))
using (var reader = new IpcReader(client, _serializer, leaveOpen: true))
{
await client.ConnectAsync();

Expand Down
7 changes: 6 additions & 1 deletion src/JKang.IpcServiceFramework.Core/IO/IpcReader.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using System.IO;
using System.Text;

namespace JKang.IpcServiceFramework.IO
{
Expand All @@ -9,8 +10,12 @@ public class IpcReader : IDisposable
private readonly IIpcMessageSerializer _serializer;

public IpcReader(Stream stream, IIpcMessageSerializer serializer)
: this(stream, serializer, leaveOpen: false)
{ }

public IpcReader(Stream stream, IIpcMessageSerializer serializer, bool leaveOpen)
{
_reader = new BinaryReader(stream);
_reader = new BinaryReader(stream, Encoding.UTF8, leaveOpen);
_serializer = serializer;
}

Expand Down
9 changes: 7 additions & 2 deletions src/JKang.IpcServiceFramework.Core/IO/IpcWriter.cs
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
using System;
using System.IO;
using System.Text;

namespace JKang.IpcServiceFramework.IO
{
public class IpcWriter: IDisposable
public class IpcWriter : IDisposable
{
private readonly BinaryWriter _writer;
private readonly IIpcMessageSerializer _serializer;

public IpcWriter(Stream stream, IIpcMessageSerializer serializer)
: this(stream, serializer, leaveOpen: false)
{ }

public IpcWriter(Stream stream, IIpcMessageSerializer serializer, bool leaveOpen)
{
_writer = new BinaryWriter(stream);
_writer = new BinaryWriter(stream, Encoding.UTF8, leaveOpen);
_serializer = serializer;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;

namespace JKang.IpcServiceFramework.Services
Expand Down Expand Up @@ -66,11 +67,19 @@ public bool TryConvert(object origValue, Type destType, out object destValue)
destValue = Convert.ChangeType(origValue, destType);
return true;
}
catch (Exception)
catch
{ }

try
{
destValue = null;
return false;
destValue = JsonConvert.DeserializeObject(JsonConvert.SerializeObject(origValue), destType);
return true;
}
catch
{ }

destValue = null;
return false;
}
}
}
8 changes: 2 additions & 6 deletions src/JKang.IpcServiceFramework.Server/IpcServiceHost.cs
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ public void Run()
private void StartServerThread(object obj)
{
using (var server = new NamedPipeServerStream(_pipeName, PipeDirection.InOut, _options.ThreadCount))
using (var writer = new IpcWriter(server, _serializer))
using (var reader = new IpcReader(server, _serializer))
using (var writer = new IpcWriter(server, _serializer, leaveOpen: true))
using (var reader = new IpcReader(server, _serializer, leaveOpen: true))
{
server.WaitForConnection();

Expand All @@ -83,10 +83,6 @@ private void StartServerThread(object obj)
{
_logger?.LogError(ex, ex.Message);
}
finally
{
server.Close();
}
}
}

Expand Down

0 comments on commit 8925593

Please sign in to comment.