Share via


AnonymousPipeServerStream Konstruktoren

Definition

Initialisiert eine neue Instanz der AnonymousPipeServerStream-Klasse.

Überlädt

AnonymousPipeServerStream()

Initialisiert eine neue Instanz der AnonymousPipeServerStream-Klasse.

AnonymousPipeServerStream(PipeDirection)

Initialisiert eine neue Instanz der AnonymousPipeServerStream-Klasse mit der angegebenen Piperichtung.

AnonymousPipeServerStream(PipeDirection, HandleInheritability)

Initialisiert eine neue Instanz der AnonymousPipeServerStream-Klasse mit der angegebenen Piperichtung und dem angegebenen Vererbbarkeitsmodus.

AnonymousPipeServerStream(PipeDirection, SafePipeHandle, SafePipeHandle)

Initialisiert eine neue Instanz der AnonymousPipeServerStream-Klasse aus den angegebenen Pipehandles.

AnonymousPipeServerStream(PipeDirection, HandleInheritability, Int32)

Initialisiert eine neue Instanz der AnonymousPipeServerStream-Klasse mit der angegebenen Piperichtung, dem angegebenen Vererbbarkeitsmodus und der angegebenen Puffergröße.

AnonymousPipeServerStream(PipeDirection, HandleInheritability, Int32, PipeSecurity)

Initialisiert eine neue Instanz der AnonymousPipeServerStream-Klasse mit der angegebenen Piperichtung, dem angegebenen Vererbbarkeitsmodus, der angegebenen Puffergröße und der angegebenen Pipesicherheit.

AnonymousPipeServerStream()

Quelle:
AnonymousPipeServerStream.cs
Quelle:
AnonymousPipeServerStream.cs
Quelle:
AnonymousPipeServerStream.cs

Initialisiert eine neue Instanz der AnonymousPipeServerStream-Klasse.

public:
 AnonymousPipeServerStream();
public AnonymousPipeServerStream ();
Public Sub New ()

Hinweise

Für AnonymousPipeServerStream Konstruktoren ohne Parameter PipeDirection ist Outdie Standardrichtung . Ein PipeDirection Wert von InOut wird nicht unterstützt, da anonyme Pipes als unidirektional definiert sind.

Dieser Konstruktor erstellt ein AnonymousPipeServerStream -Objekt, das die Standardpuffergröße, keine Pipesicherheit und den HandleInheritability Wert aufweist None.

Gilt für:

AnonymousPipeServerStream(PipeDirection)

Quelle:
AnonymousPipeServerStream.cs
Quelle:
AnonymousPipeServerStream.cs
Quelle:
AnonymousPipeServerStream.cs

Initialisiert eine neue Instanz der AnonymousPipeServerStream-Klasse mit der angegebenen Piperichtung.

public:
 AnonymousPipeServerStream(System::IO::Pipes::PipeDirection direction);
public AnonymousPipeServerStream (System.IO.Pipes.PipeDirection direction);
new System.IO.Pipes.AnonymousPipeServerStream : System.IO.Pipes.PipeDirection -> System.IO.Pipes.AnonymousPipeServerStream
Public Sub New (direction As PipeDirection)

Parameter

direction
PipeDirection

Einer der Enumerationswerte, der die Richtung der Pipe bestimmt.

Anonyme Pipes dürfen nur eine Richtung aufweisen, daher kann direction nicht auf InOut festgelegt werden.

Ausnahmen

Für direction ist InOut festgelegt.

Hinweise

Ein PipeDirection Wert von InOut wird nicht unterstützt, da anonyme Pipes als unidirektional definiert sind.

Dieser Konstruktor erstellt ein AnonymousPipeServerStream -Objekt, das die Standardpuffergröße, keine Pipesicherheit und den HandleInheritability Wert aufweist None.

Gilt für:

AnonymousPipeServerStream(PipeDirection, HandleInheritability)

Quelle:
AnonymousPipeServerStream.cs
Quelle:
AnonymousPipeServerStream.cs
Quelle:
AnonymousPipeServerStream.cs

Initialisiert eine neue Instanz der AnonymousPipeServerStream-Klasse mit der angegebenen Piperichtung und dem angegebenen Vererbbarkeitsmodus.

public:
 AnonymousPipeServerStream(System::IO::Pipes::PipeDirection direction, System::IO::HandleInheritability inheritability);
public AnonymousPipeServerStream (System.IO.Pipes.PipeDirection direction, System.IO.HandleInheritability inheritability);
new System.IO.Pipes.AnonymousPipeServerStream : System.IO.Pipes.PipeDirection * System.IO.HandleInheritability -> System.IO.Pipes.AnonymousPipeServerStream
Public Sub New (direction As PipeDirection, inheritability As HandleInheritability)

Parameter

direction
PipeDirection

Einer der Enumerationswerte, der die Richtung der Pipe bestimmt.

Anonyme Pipes dürfen nur eine Richtung aufweisen, daher kann direction nicht auf InOut festgelegt werden.

inheritability
HandleInheritability

Einer der Enumerationswerte, der bestimmt, ob das zugrunde liegende Handle von untergeordneten Prozessen geerbt werden kann. Muss entweder auf None oder auf Inheritable festgelegt sein.

Ausnahmen

inheritability ist nicht auf None oder Inheritable festgelegt.

Für direction ist InOut festgelegt.

Beispiele

Das folgende Beispiel veranschaulicht eine Methode zum Senden einer Zeichenfolge aus einem übergeordneten Prozess an einen untergeordneten Prozess mithilfe anonymer Pipes. In diesem Beispiel wird ein AnonymousPipeServerStream -Objekt in einem übergeordneten Prozess mit dem PipeDirection Wert Outerstellt.

//<snippet01>
#using <System.dll>
#using <System.Core.dll>

using namespace System;
using namespace System::IO;
using namespace System::IO::Pipes;
using namespace System::Diagnostics;

ref class PipeServer
{
public:
    static void Main()
    {
        Process^ pipeClient = gcnew Process();

        pipeClient->StartInfo->FileName = "pipeClient.exe";

        AnonymousPipeServerStream^ pipeServer =
            gcnew AnonymousPipeServerStream(PipeDirection::Out,
            HandleInheritability::Inheritable);

        Console::WriteLine("[SERVER] Current TransmissionMode: {0}.",
            pipeServer->TransmissionMode);

        // Pass the client process a handle to the server.
        pipeClient->StartInfo->Arguments =
            pipeServer->GetClientHandleAsString();
        pipeClient->StartInfo->UseShellExecute = false;
        pipeClient->Start();

        pipeServer->DisposeLocalCopyOfClientHandle();

        try
        {
            // Read user input and send that to the client process.
            StreamWriter^ sw = gcnew StreamWriter(pipeServer);

            sw->AutoFlush = true;
            // Send a 'sync message' and wait for client to receive it.
            sw->WriteLine("SYNC");
            pipeServer->WaitForPipeDrain();
            // Send the console input to the client process.
            Console::Write("[SERVER] Enter text: ");
            sw->WriteLine(Console::ReadLine());
            sw->Close();
        }
        // Catch the IOException that is raised if the pipe is broken
        // or disconnected.
        catch (IOException^ e)
        {
            Console::WriteLine("[SERVER] Error: {0}", e->Message);
        }
        pipeServer->Close();
        pipeClient->WaitForExit();
        pipeClient->Close();
        Console::WriteLine("[SERVER] Client quit. Server terminating.");
    }
};

int main()
{
    PipeServer::Main();
}
//</snippet01>
//<snippet01>
using System;
using System.IO;
using System.IO.Pipes;
using System.Diagnostics;

class PipeServer
{
    static void Main()
    {
        Process pipeClient = new Process();

        pipeClient.StartInfo.FileName = "pipeClient.exe";

        using (AnonymousPipeServerStream pipeServer =
            new AnonymousPipeServerStream(PipeDirection.Out,
            HandleInheritability.Inheritable))
        {
            Console.WriteLine("[SERVER] Current TransmissionMode: {0}.",
                pipeServer.TransmissionMode);

            // Pass the client process a handle to the server.
            pipeClient.StartInfo.Arguments =
                pipeServer.GetClientHandleAsString();
            pipeClient.StartInfo.UseShellExecute = false;
            pipeClient.Start();

            pipeServer.DisposeLocalCopyOfClientHandle();

            try
            {
                // Read user input and send that to the client process.
                using (StreamWriter sw = new StreamWriter(pipeServer))
                {
                    sw.AutoFlush = true;
                    // Send a 'sync message' and wait for client to receive it.
                    sw.WriteLine("SYNC");
                    pipeServer.WaitForPipeDrain();
                    // Send the console input to the client process.
                    Console.Write("[SERVER] Enter text: ");
                    sw.WriteLine(Console.ReadLine());
                }
            }
            // Catch the IOException that is raised if the pipe is broken
            // or disconnected.
            catch (IOException e)
            {
                Console.WriteLine("[SERVER] Error: {0}", e.Message);
            }
        }

        pipeClient.WaitForExit();
        pipeClient.Close();
        Console.WriteLine("[SERVER] Client quit. Server terminating.");
    }
}
//</snippet01>
'<snippet01>
Imports System.IO
Imports System.IO.Pipes
Imports System.Diagnostics

Class PipeServer
    Shared Sub Main()
        Dim pipeClient As New Process()

        pipeClient.StartInfo.FileName = "pipeClient.exe"

        Using pipeServer As New AnonymousPipeServerStream(PipeDirection.Out, _
            HandleInheritability.Inheritable)

            Console.WriteLine("[SERVER] Current TransmissionMode: {0}.",
                pipeServer.TransmissionMode)

            ' Pass the client process a handle to the server.
            pipeClient.StartInfo.Arguments = pipeServer.GetClientHandleAsString()
            pipeClient.StartInfo.UseShellExecute = false
            pipeClient.Start()

            pipeServer.DisposeLocalCopyOfClientHandle()

            Try
                ' Read user input and send that to the client process.
                Using sw As New StreamWriter(pipeServer)
                    sw.AutoFlush = true
                    ' Send a 'sync message' and wait for client to receive it.
                    sw.WriteLine("SYNC")
                    pipeServer.WaitForPipeDrain()
                    ' Send the console input to the client process.
                    Console.Write("[SERVER] Enter text: ")
                    sw.WriteLine(Console.ReadLine())
                End Using
            Catch e As IOException
                ' Catch the IOException that is raised if the pipe is broken
                ' or disconnected.
                Console.WriteLine("[SERVER] Error: {0}", e.Message)
            End Try
        End Using

        pipeClient.WaitForExit()
        pipeClient.Close()
        Console.WriteLine("[SERVER] Client quit. Server terminating.")
    End Sub
End Class
'</snippet01>

Hinweise

Ein PipeDirection Wert von InOut wird nicht unterstützt, da anonyme Pipes als unidirektional definiert sind.

Dieser Konstruktor erstellt ein AnonymousPipeServerStream Objekt, das über die Standardpuffergröße und keine Pipesicherheit verfügt.

Gilt für:

AnonymousPipeServerStream(PipeDirection, SafePipeHandle, SafePipeHandle)

Quelle:
AnonymousPipeServerStream.cs
Quelle:
AnonymousPipeServerStream.cs
Quelle:
AnonymousPipeServerStream.cs

Initialisiert eine neue Instanz der AnonymousPipeServerStream-Klasse aus den angegebenen Pipehandles.

public:
 AnonymousPipeServerStream(System::IO::Pipes::PipeDirection direction, Microsoft::Win32::SafeHandles::SafePipeHandle ^ serverSafePipeHandle, Microsoft::Win32::SafeHandles::SafePipeHandle ^ clientSafePipeHandle);
public AnonymousPipeServerStream (System.IO.Pipes.PipeDirection direction, Microsoft.Win32.SafeHandles.SafePipeHandle serverSafePipeHandle, Microsoft.Win32.SafeHandles.SafePipeHandle clientSafePipeHandle);
[System.Security.SecurityCritical]
public AnonymousPipeServerStream (System.IO.Pipes.PipeDirection direction, Microsoft.Win32.SafeHandles.SafePipeHandle serverSafePipeHandle, Microsoft.Win32.SafeHandles.SafePipeHandle clientSafePipeHandle);
new System.IO.Pipes.AnonymousPipeServerStream : System.IO.Pipes.PipeDirection * Microsoft.Win32.SafeHandles.SafePipeHandle * Microsoft.Win32.SafeHandles.SafePipeHandle -> System.IO.Pipes.AnonymousPipeServerStream
[<System.Security.SecurityCritical>]
new System.IO.Pipes.AnonymousPipeServerStream : System.IO.Pipes.PipeDirection * Microsoft.Win32.SafeHandles.SafePipeHandle * Microsoft.Win32.SafeHandles.SafePipeHandle -> System.IO.Pipes.AnonymousPipeServerStream
Public Sub New (direction As PipeDirection, serverSafePipeHandle As SafePipeHandle, clientSafePipeHandle As SafePipeHandle)

Parameter

direction
PipeDirection

Einer der Enumerationswerte, der die Richtung der Pipe bestimmt.

Anonyme Pipes dürfen nur eine Richtung aufweisen, daher kann direction nicht auf InOut festgelegt werden.

serverSafePipeHandle
SafePipeHandle

Ein sicheres Handle für die Pipe, die von diesem AnonymousPipeServerStream-Objekt gekapselt wird.

clientSafePipeHandle
SafePipeHandle

Ein sicheres Handle für das AnonymousPipeClientStream-Objekt.

Attribute

Ausnahmen

serverSafePipeHandle oder clientSafePipeHandle ist ein ungültiges Handle.

serverSafePipeHandle oder clientSafePipeHandle ist null.

Für direction ist InOut festgelegt.

Es ist ein E/A-Fehler aufgetreten, beispielsweise ein Datenträgerfehler.

- oder -

Der Stream wurde geschlossen.

Hinweise

Ein PipeDirection Wert von InOut wird nicht unterstützt, da anonyme Pipes als unidirektional definiert sind.

Gilt für:

AnonymousPipeServerStream(PipeDirection, HandleInheritability, Int32)

Quelle:
AnonymousPipeServerStream.cs
Quelle:
AnonymousPipeServerStream.cs
Quelle:
AnonymousPipeServerStream.cs

Initialisiert eine neue Instanz der AnonymousPipeServerStream-Klasse mit der angegebenen Piperichtung, dem angegebenen Vererbbarkeitsmodus und der angegebenen Puffergröße.

public:
 AnonymousPipeServerStream(System::IO::Pipes::PipeDirection direction, System::IO::HandleInheritability inheritability, int bufferSize);
public AnonymousPipeServerStream (System.IO.Pipes.PipeDirection direction, System.IO.HandleInheritability inheritability, int bufferSize);
[System.Security.SecurityCritical]
public AnonymousPipeServerStream (System.IO.Pipes.PipeDirection direction, System.IO.HandleInheritability inheritability, int bufferSize);
new System.IO.Pipes.AnonymousPipeServerStream : System.IO.Pipes.PipeDirection * System.IO.HandleInheritability * int -> System.IO.Pipes.AnonymousPipeServerStream
[<System.Security.SecurityCritical>]
new System.IO.Pipes.AnonymousPipeServerStream : System.IO.Pipes.PipeDirection * System.IO.HandleInheritability * int -> System.IO.Pipes.AnonymousPipeServerStream
Public Sub New (direction As PipeDirection, inheritability As HandleInheritability, bufferSize As Integer)

Parameter

direction
PipeDirection

Einer der Enumerationswerte, der die Richtung der Pipe bestimmt.

Anonyme Pipes dürfen nur eine Richtung aufweisen, daher kann direction nicht auf InOut festgelegt werden.

inheritability
HandleInheritability

Einer der Enumerationswerte, der bestimmt, ob das zugrunde liegende Handle von untergeordneten Prozessen geerbt werden kann. Muss entweder auf None oder auf Inheritable festgelegt sein.

bufferSize
Int32

Die Größe des Puffers. Dieser Wert muss größer oder gleich 0 sein.

Attribute

Ausnahmen

inheritability ist nicht auf None oder Inheritable festgelegt.

- oder -

bufferSize ist kleiner als 0.

Für direction ist InOut festgelegt.

Hinweise

Ein PipeDirection Wert von InOut wird nicht unterstützt, da anonyme Pipes als unidirektional definiert sind.

Dieser Konstruktor erstellt ein AnonymousPipeServerStream Objekt ohne Pipesicherheit.

Gilt für:

AnonymousPipeServerStream(PipeDirection, HandleInheritability, Int32, PipeSecurity)

Initialisiert eine neue Instanz der AnonymousPipeServerStream-Klasse mit der angegebenen Piperichtung, dem angegebenen Vererbbarkeitsmodus, der angegebenen Puffergröße und der angegebenen Pipesicherheit.

public:
 AnonymousPipeServerStream(System::IO::Pipes::PipeDirection direction, System::IO::HandleInheritability inheritability, int bufferSize, System::IO::Pipes::PipeSecurity ^ pipeSecurity);
[System.Security.SecurityCritical]
public AnonymousPipeServerStream (System.IO.Pipes.PipeDirection direction, System.IO.HandleInheritability inheritability, int bufferSize, System.IO.Pipes.PipeSecurity pipeSecurity);
public AnonymousPipeServerStream (System.IO.Pipes.PipeDirection direction, System.IO.HandleInheritability inheritability, int bufferSize, System.IO.Pipes.PipeSecurity pipeSecurity);
[<System.Security.SecurityCritical>]
new System.IO.Pipes.AnonymousPipeServerStream : System.IO.Pipes.PipeDirection * System.IO.HandleInheritability * int * System.IO.Pipes.PipeSecurity -> System.IO.Pipes.AnonymousPipeServerStream
new System.IO.Pipes.AnonymousPipeServerStream : System.IO.Pipes.PipeDirection * System.IO.HandleInheritability * int * System.IO.Pipes.PipeSecurity -> System.IO.Pipes.AnonymousPipeServerStream
Public Sub New (direction As PipeDirection, inheritability As HandleInheritability, bufferSize As Integer, pipeSecurity As PipeSecurity)

Parameter

direction
PipeDirection

Einer der Enumerationswerte, der die Richtung der Pipe bestimmt.

Anonyme Pipes dürfen nur eine Richtung aufweisen, daher kann direction nicht auf InOut festgelegt werden.

inheritability
HandleInheritability

Einer der Enumerationswerte, der bestimmt, ob das zugrunde liegende Handle von untergeordneten Prozessen geerbt werden kann.

bufferSize
Int32

Die Größe des Puffers. Dieser Wert muss größer oder gleich 0 sein.

pipeSecurity
PipeSecurity

Ein Objekt, das die Zugriffssteuerung und die Überwachungssicherheit für die Pipe bestimmt.

Attribute

Ausnahmen

inheritability ist nicht auf None oder Inheritable festgelegt.

- oder -

bufferSize ist kleiner als 0.

Für direction ist InOut festgelegt.

Hinweise

Ein PipeDirection Wert von InOut wird nicht unterstützt, da anonyme Pipes als unidirektional definiert sind.

Gilt für: