public ObjClient(
     string url
     , Func <string, IPersistentConnection> clientFactory
     , SerializationConfig sconfig)
 {
     _SerConfig = sconfig;
     _Client    = clientFactory(url);
     _Stream    = new ConnectionStream(_Client);
     _Splitter  = sconfig.SplitterFactory(_Stream);
     _Splitter.OnReceiveBlock += OnReceiveBlock;
     _Client.StartConnect();
     _LastReceiveTick = System.Environment.TickCount;
 }
 protected virtual void Dispose(bool disposing)
 {
     if (!disposedValue)
     {
         if (!LeaveOpen)
         {
             _Stream.Dispose();
         }
         _Client = null;
         _Stream = null;
         if (_Splitter != null)
         {
             _Splitter.Dispose();
             _Splitter = null;
         }
         _SerConfig       = null;
         _PendingRead.Obj = null;
         disposedValue    = true;
     }
 }