Condividi tramite


AnonymousPipeServerStream Costruttori

Definizione

Inizializza una nuova istanza della classe AnonymousPipeServerStream.

Overload

AnonymousPipeServerStream()

Inizializza una nuova istanza della classe AnonymousPipeServerStream.

AnonymousPipeServerStream(PipeDirection)

Inizializza una nuova istanza della classe AnonymousPipeServerStream con la direzione della pipe specificata.

AnonymousPipeServerStream(PipeDirection, HandleInheritability)

Inizializza una nuova istanza della classe AnonymousPipeServerStream con la direzione della pipe e la modalità di ereditarietà specificate.

AnonymousPipeServerStream(PipeDirection, SafePipeHandle, SafePipeHandle)

Inizializza una nuova istanza della classe AnonymousPipeServerStream dagli handle di pipe specificati.

AnonymousPipeServerStream(PipeDirection, HandleInheritability, Int32)

Inizializza una nuova istanza della classe AnonymousPipeServerStream con la direzione della pipe, la modalità di ereditarietà e la dimensione di buffer specificate.

AnonymousPipeServerStream(PipeDirection, HandleInheritability, Int32, PipeSecurity)

Inizializza una nuova istanza della classe AnonymousPipeServerStream con la direzione della pipe, la modalità di ereditarietà, la dimensione di buffer e la sicurezza della pipe specificate.

AnonymousPipeServerStream()

Origine:
AnonymousPipeServerStream.cs
Origine:
AnonymousPipeServerStream.cs
Origine:
AnonymousPipeServerStream.cs

Inizializza una nuova istanza della classe AnonymousPipeServerStream.

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

Commenti

Per AnonymousPipeServerStream i costruttori senza un PipeDirection parametro, la direzione predefinita è Out. Un PipeDirection valore di InOut non è supportato perché le pipe anonime sono definite come unidirezionale.

Questo costruttore crea un AnonymousPipeServerStream oggetto con dimensioni del buffer predefinite, nessuna sicurezza della pipe e un HandleInheritability valore di None.

Si applica a

AnonymousPipeServerStream(PipeDirection)

Origine:
AnonymousPipeServerStream.cs
Origine:
AnonymousPipeServerStream.cs
Origine:
AnonymousPipeServerStream.cs

Inizializza una nuova istanza della classe AnonymousPipeServerStream con la direzione della pipe specificata.

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)

Parametri

direction
PipeDirection

Uno dei valori di enumerazione che determina la direzione della pipe.

Le unnamed pipe possono avere una sola direzione, quindi non è possibile impostare direction a InOut.

Eccezioni

direction è impostato su InOut.

Commenti

Un PipeDirection valore di InOut non è supportato perché le pipe anonime sono definite come unidirezionale.

Questo costruttore crea un AnonymousPipeServerStream oggetto con dimensioni del buffer predefinite, nessuna sicurezza della pipe e un HandleInheritability valore di None.

Si applica a

AnonymousPipeServerStream(PipeDirection, HandleInheritability)

Origine:
AnonymousPipeServerStream.cs
Origine:
AnonymousPipeServerStream.cs
Origine:
AnonymousPipeServerStream.cs

Inizializza una nuova istanza della classe AnonymousPipeServerStream con la direzione della pipe e la modalità di ereditarietà specificate.

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)

Parametri

direction
PipeDirection

Uno dei valori di enumerazione che determina la direzione della pipe.

Le unnamed pipe possono avere una sola direzione, quindi non è possibile impostare direction a InOut.

inheritability
HandleInheritability

Uno dei valori di enumerazione che determina se l'handle sottostante può essere ereditato dai processi figlio. Deve essere impostato a None o Inheritable.

Eccezioni

inheritability non è impostato su None o su Inheritable.

direction è impostato su InOut.

Esempio

Nell'esempio seguente viene illustrato un metodo per inviare una stringa da un processo padre a un processo figlio usando pipe anonime. In questo esempio viene creato un AnonymousPipeServerStream oggetto in un processo padre con un PipeDirection valore di Out.

//<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>

Commenti

Un PipeDirection valore di InOut non è supportato perché le pipe anonime sono definite come unidirezionale.

Questo costruttore crea un AnonymousPipeServerStream oggetto con le dimensioni predefinite del buffer e nessuna sicurezza della pipe.

Si applica a

AnonymousPipeServerStream(PipeDirection, SafePipeHandle, SafePipeHandle)

Origine:
AnonymousPipeServerStream.cs
Origine:
AnonymousPipeServerStream.cs
Origine:
AnonymousPipeServerStream.cs

Inizializza una nuova istanza della classe AnonymousPipeServerStream dagli handle di pipe specificati.

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)

Parametri

direction
PipeDirection

Uno dei valori di enumerazione che determina la direzione della pipe.

Le unnamed pipe possono avere una sola direzione, quindi non è possibile impostare direction a InOut.

serverSafePipeHandle
SafePipeHandle

Handle sicuro per la pipe che verrà incapsulata da questo oggetto AnonymousPipeServerStream.

clientSafePipeHandle
SafePipeHandle

Handle sicuro per l'oggetto AnonymousPipeClientStream.

Attributi

Eccezioni

serverSafePipeHandle è clientSafePipeHandle o non è un handle valido.

serverSafePipeHandle o clientSafePipeHandle è null.

direction è impostato su InOut.

Si è verificato un errore di I/O, ad esempio un errore su disco.

-oppure-

Il flusso è stato chiuso.

Commenti

Un PipeDirection valore di InOut non è supportato perché le pipe anonime sono definite come unidirezionale.

Si applica a

AnonymousPipeServerStream(PipeDirection, HandleInheritability, Int32)

Origine:
AnonymousPipeServerStream.cs
Origine:
AnonymousPipeServerStream.cs
Origine:
AnonymousPipeServerStream.cs

Inizializza una nuova istanza della classe AnonymousPipeServerStream con la direzione della pipe, la modalità di ereditarietà e la dimensione di buffer specificate.

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)

Parametri

direction
PipeDirection

Uno dei valori di enumerazione che determina la direzione della pipe.

Le unnamed pipe possono avere una sola direzione, quindi non è possibile impostare direction a InOut.

inheritability
HandleInheritability

Uno dei valori di enumerazione che determina se l'handle sottostante può essere ereditato dai processi figlio. Deve essere impostato a None o Inheritable.

bufferSize
Int32

Dimensione del buffer. Questo valore deve essere uguale o maggiore di 0.

Attributi

Eccezioni

inheritability non è impostato su None o su Inheritable.

-oppure-

bufferSize è minore di 0.

direction è impostato su InOut.

Commenti

Un PipeDirection valore di InOut non è supportato perché le pipe anonime sono definite come unidirezionale.

Questo costruttore crea un AnonymousPipeServerStream oggetto senza sicurezza della pipe.

Si applica a

AnonymousPipeServerStream(PipeDirection, HandleInheritability, Int32, PipeSecurity)

Inizializza una nuova istanza della classe AnonymousPipeServerStream con la direzione della pipe, la modalità di ereditarietà, la dimensione di buffer e la sicurezza della pipe specificate.

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)

Parametri

direction
PipeDirection

Uno dei valori di enumerazione che determina la direzione della pipe.

Le unnamed pipe possono avere una sola direzione, quindi non è possibile impostare direction a InOut.

inheritability
HandleInheritability

Uno dei valori di enumerazione che determina se l'handle sottostante può essere ereditato dai processi figlio.

bufferSize
Int32

Dimensione del buffer. Questo valore deve essere uguale o maggiore di 0.

pipeSecurity
PipeSecurity

Oggetto che determina il controllo di accesso e la sicurezza di controllo per la pipe.

Attributi

Eccezioni

inheritability non è impostato su None o su Inheritable.

-oppure-

bufferSize è minore di 0.

direction è impostato su InOut.

Commenti

Un PipeDirection valore di InOut non è supportato perché le pipe anonime sono definite come unidirezionale.

Si applica a