public void Read_debug_pipe() { var server = new NamedPipeServerStream("test"); var cliet = new NamedPipeClientStream("test"); cliet.Connect(); server.WaitForConnection(); var observable = DebugPipe.Observe(cliet); var w = new StreamWriter(server); w.AutoFlush = true; w.WriteLine("test"); var result = observable.First(); Assert.AreEqual("test", result); }
public void InitApp() { foreach (var key in ConfigurationManager.AppSettings.AllKeys) { var value = ConfigurationManager.AppSettings[key]; try { var property = Config.GetType().GetField(key); if (property == null) { continue; } if (property.FieldType.IsInstanceOfType(value)) { property.SetValue(Config, value); } else { try { property.SetValue(Config, Convert.ChangeType(value, property.FieldType)); } catch (Exception) { property.SetValue(Config, TypeDescriptor.GetConverter(property.FieldType).ConvertFrom(value)); } } } catch (Exception e) { #if DEBUG throw; #else log.Warn(String.Format("Не удалось считать параметр '{0}'='{1}'", key, value), e); #endif } } if (ConfigurationManager.AppSettings["Uri"] != null) { Config.BaseUrl = new Uri(ConfigurationManager.AppSettings["Uri"]); } Config.RootDir = FileHelper.MakeRooted(Config.RootDir); #if DEBUG debugPipe = new DebugPipe(Config.DebugPipeName); #endif if (Directory.Exists(Config.TmpDir)) { try { //перемещаем лог файл обновления что отправить его на сервер if (Directory.Exists(Config.BinUpdateDir)) { Directory.GetFiles(Config.BinUpdateDir, "*.log") .Each(f => File.Move(f, FileHelper.Uniq(Path.Combine(Config.RootDir, Path.GetFileName(f))))); } } catch (Exception e) { log.Warn(e); } if (!Config.Cmd.Match("import")) { try { FileHelper.DeleteDir(Config.TmpDir); Directory.CreateDirectory(Config.TmpDir); } catch (Exception e) { log.Warn(e); } } } else { Directory.CreateDirectory(Config.TmpDir); } Config.MultiUser = CountDb() > 1; }