public DebugViewModel() { GetTypeCommand = new RelayCommand(GetTypeCommandExecute); DataResponce result = DebugModel.Instance.GetAll(); if (result != null) { LoadedTypes = ((IEnumerable <string>)result.Data).OrderBy(x => x); } }
private void StartServer() { try { _listener = new TcpListener(IPAddress.Parse("127.0.0.1"), 11000); _listener.Start(); var formatter = new BinaryFormatter(); while (true) { using (var client = _listener.AcceptTcpClient()) { var buff = new byte[1024]; client.GetStream().Read(buff, 0, buff.Length); var request = GetDataRequest(buff); if (request == null) { continue; } DataResponce responce = null; switch (request.Command) { case Commands.GetType: var t = GetKspType(request.TypeName); if (t != null) { responce = new DataResponce(false, t); } break; case Commands.GetTypes: var types = GetAllTypes(); responce = new DataResponce(false, types); break; case Commands.GetField: break; case Commands.GetProperty: break; case Commands.Set: break; default: throw new ArgumentOutOfRangeException(); } using (var mStream = new MemoryStream()) { formatter.Serialize(mStream, responce ?? new DataResponce(true, null)); client.GetStream().Write(mStream.ToArray(), 0, (int)mStream.Length); } } } } catch (Exception ex) { Debug.LogException(ex); _listener.Stop(); } finally { if (_listener != null) { _listener.Stop(); } } }