DataReceivedEventArgs.Data Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee haalt u de regel tekens op die naar een omgeleide Process uitvoerstroom zijn geschreven.
public:
property System::String ^ Data { System::String ^ get(); };
public string Data { get; }
member this.Data : string
Public ReadOnly Property Data As String
Waarde van eigenschap
De regel die is geschreven door een gekoppeld aan Process de omgeleide StandardOutput of StandardError stream.
Voorbeelden
In het volgende codevoorbeeld ziet u een eenvoudige gebeurtenis-handler die is gekoppeld aan de OutputDataReceived gebeurtenis. De gebeurtenishandler ontvangt tekstregels van de omgeleide StandardOutput stroom, formatteert de tekst en schrijft de tekst naar het scherm.
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
Opmerkingen
Wanneer u de StandardOutput of StandardError stroom van een Process gebeurtenis-handler omleidt naar uw gebeurtenis-handler, wordt er telkens een gebeurtenis gegenereerd wanneer het proces een regel naar de omgeleide stream schrijft. De Data eigenschap is de regel die de Process heeft geschreven naar de omgeleide uitvoerstroom. Uw gebeurtenis-handler kan de Data eigenschap gebruiken om procesuitvoer of uitvoer naar een alternatieve locatie te filteren. U kunt bijvoorbeeld een gebeurtenishandler maken waarin alle regels voor foutuitvoer worden opgeslagen in een toegewezen foutenlogboekbestand.
Een regel wordt gedefinieerd als een reeks tekens gevolgd door een regelinvoer ("\n") of een regelterugloop direct gevolgd door een regelinvoer ("\r\n"). De regeltekens worden gecodeerd met behulp van de standaard ANSI-codepagina van het systeem. De Data eigenschap bevat niet de afsluit regelterugloop of regelinvoer.
Wanneer de omgeleide stream wordt gesloten, wordt er een null-regel verzonden naar de gebeurtenis-handler. Zorg ervoor dat de gebeurtenis-handler de eigenschap op de Data juiste wijze controleert voordat u deze opent. U kunt bijvoorbeeld de statische methode String.IsNullOrEmpty gebruiken om de eigenschap in uw Data gebeurtenis-handler te valideren.