示例#1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="TraceOutputViewModel" /> class.
        /// </summary>
        /// <param name="dispatcherService">The dispatcher service.</param>
        /// <exception cref="ArgumentNullException">The <paramref name="dispatcherService"/> is <c>null</c>.</exception>
        public TraceOutputViewModel(IDispatcherService dispatcherService)
        {
            Argument.IsNotNull("dispatcherService", dispatcherService);

            _dispatcherService = dispatcherService;

            CopyToClipboard = new Command(OnCopyToClipboardExecute, OnCopyToClipboardCanExecute);
            ClearOutput = new Command(OnClearOutputExecute);

            _traceListener = new OutputTraceListener();
            Trace.Listeners.Add(_traceListener);

            _traceListener.ActiveTraceLevel = TraceLevel.Verbose;
            _traceListener.WrittenLine += WriteLine;

            TraceEntryCollection = new ObservableCollection<TraceEntry>();
        }
示例#2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="TraceOutputViewModel" /> class.
        /// </summary>
        /// <param name="dispatcherService">The dispatcher service.</param>
        /// <exception cref="ArgumentNullException">The <paramref name="dispatcherService"/> is <c>null</c>.</exception>
        public TraceOutputViewModel(IDispatcherService dispatcherService)
        {
            Argument.IsNotNull("dispatcherService", dispatcherService);

            _dispatcherService = dispatcherService;

            CopyToClipboard = new Command(OnCopyToClipboardExecute, OnCopyToClipboardCanExecute);
            ClearOutput     = new Command(OnClearOutputExecute);

            _traceListener = new OutputTraceListener();
            Trace.Listeners.Add(_traceListener);

            _traceListener.ActiveTraceLevel = TraceLevel.Verbose;
            _traceListener.WrittenLine     += WriteLine;

            TraceEntryCollection = new ObservableCollection <TraceEntry>();
        }
示例#3
0
        private void ConsoleNeeded(bool redirectLogs = false)
        {
            if (redirectLogs)
            {
                var listener = new OutputTraceListener();
                listener.Other = LogViewTraceListener.Actual;
                LogViewTraceListener.Actual = listener;
            }

            if (Kernel32.GetConsoleWindow() == IntPtr.Zero)
            {
                var parentPid = GetParentProcessId(Process.GetCurrentProcess());
                Kernel32.AttachConsole((uint)parentPid);
                if (Kernel32.GetConsoleWindow() == IntPtr.Zero)
                {
                    Kernel32.AllocConsole();
                }
            }

            Terminal.WriteLine();
        }