DataReceivedEventArgs.Data Proprietà

Definizione

Ottiene la riga di caratteri che è stata scritta in un flusso di output di Process reindirizzato.

C#
public string? Data { get; }
C#
public string Data { get; }

Valore della proprietà

Riga scritta da un Process associato al relativo flusso di StandardOutput o di StandardError reindirizzato.

Esempio

Nell'esempio di codice seguente viene illustrato un semplice gestore eventi associato all'evento OutputDataReceived . Il gestore eventi riceve righe di testo dal flusso reindirizzato, formatta il testo e scrive il testo nella schermata StandardOutput .

C#
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();
    }
}

Commenti

Quando si reindirizza il StandardOutput flusso o StandardError di un Process oggetto al gestore eventi, viene generato un evento ogni volta che il processo scrive una riga nel flusso reindirizzato. La Data proprietà è la riga Process scritta nel flusso di output reindirizzato. Il gestore eventi può usare la proprietà per filtrare l'output del processo o scrivere l'output Data in una posizione alternativa. Ad esempio, è possibile creare un gestore eventi che archivia tutte le righe di output degli errori in un file di log degli errori designato.

Una riga è definita come una sequenza di caratteri seguita da un feed di linee ("\n") o un ritorno a capo immediatamente seguito da un feed di linee ("\r\n"). I caratteri di riga vengono codificati usando la tabella codici ANSI di sistema predefinita. La Data proprietà non include il ritorno a capo terminante o il feed di linee.

Quando il flusso reindirizzato viene chiuso, viene inviata una riga Null al gestore eventi. Assicurarsi che il gestore eventi controlli in modo appropriato la Data proprietà prima di accedervi. Ad esempio, è possibile usare il metodo String.IsNullOrEmpty statico per convalidare la Data proprietà nel gestore eventi.

Si applica a

Prodotto Versioni
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1