DataReceivedEventArgs.Data Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает строку символов, записанных в перенаправленный Process выходной поток.
public:
property System::String ^ Data { System::String ^ get(); };
public string? Data { get; }
public string Data { get; }
member this.Data : string
Public ReadOnly Property Data As String
Значение свойства
Строка, написанная связанной Process с перенаправленной StandardOutput или StandardError потоковой передачей.
Примеры
В следующем примере кода показан простой обработчик событий, связанный с событием OutputDataReceived . Обработчик событий получает текстовые строки из перенаправленного StandardOutput потока, форматирует текст и записывает его на экран.
using System;
using System.IO;
using System.Diagnostics;
using System.Text;
class StandardAsyncOutputExample
{
private static int lineCount = 0;
private static StringBuilder output = new StringBuilder();
public static void Main()
{
Process process = new Process();
process.StartInfo.FileName = "ipconfig.exe";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.OutputDataReceived += new DataReceivedEventHandler((sender, e) =>
{
// Prepend line numbers to each line of the output.
if (!String.IsNullOrEmpty(e.Data))
{
lineCount++;
output.Append("\n[" + lineCount + "]: " + e.Data);
}
});
process.Start();
// Asynchronously read the standard output of the spawned process.
// This raises OutputDataReceived events for each line of output.
process.BeginOutputReadLine();
process.WaitForExit();
// Write the redirected output to this application's window.
Console.WriteLine(output);
process.WaitForExit();
process.Close();
Console.WriteLine("\n\nPress any key to exit.");
Console.ReadLine();
}
}
Imports System.IO
Imports System.Diagnostics
Imports System.Text
Module Module1
Dim lineCount As Integer = 0
Dim output As StringBuilder = New StringBuilder()
Sub Main()
Dim process As New Process()
process.StartInfo.FileName = "ipconfig.exe"
process.StartInfo.UseShellExecute = False
process.StartInfo.RedirectStandardOutput = True
AddHandler process.OutputDataReceived, AddressOf OutputHandler
process.Start()
' Asynchronously read the standard output of the spawned process.
' This raises OutputDataReceived events for each line of output.
process.BeginOutputReadLine()
process.WaitForExit()
Console.WriteLine(output)
process.WaitForExit()
process.Close()
Console.WriteLine(Environment.NewLine + Environment.NewLine + "Press any key to exit.")
Console.ReadLine()
End Sub
Sub OutputHandler(sender As Object, e As DataReceivedEventArgs)
If Not String.IsNullOrEmpty(e.Data) Then
lineCount += 1
' Add the text to the collected output.
output.Append(Environment.NewLine + "[" + lineCount.ToString() + "]: " + e.Data)
End If
End Sub
End Module
Комментарии
При перенаправлении StandardOutput или StandardError потоковой Process передачи в обработчик событий событие вызывается каждый раз, когда процесс записывает строку в перенаправленный поток. Это Data строка, Process которая записывается в перенаправленный выходной поток. Обработчик событий может использовать Data свойство для фильтрации выходных данных процесса или записи выходных данных в альтернативное расположение. Например, можно создать обработчик событий, который сохраняет все выходные строки ошибок в указанный файл журнала ошибок.
Строка определяется как последовательность символов, за которой следует канал строк ("\n") или возврат каретки сразу после строки ("\r\n"). Символы строки кодируются с помощью кодовой страницы ANSI по умолчанию. Свойство Data не включает завершающий возврат каретки или канал строки.
При закрытии перенаправленного потока в обработчик событий отправляется строка NULL. Убедитесь, Data что обработчик событий проверяет свойство соответствующим образом перед доступом к нему. Например, статический метод String.IsNullOrEmpty можно использовать для проверки Data свойства в обработчике событий.