語言

AnonymousPipeServerStream 建構函式

定義

初始化 AnonymousPipeServerStream 類別的新執行個體。

多載

名稱 Description
AnonymousPipeServerStream()

初始化 AnonymousPipeServerStream 類別的新執行個體。

AnonymousPipeServerStream(PipeDirection)

初始化一個以指定管線方向的新類別實例 AnonymousPipeServerStream 。

AnonymousPipeServerStream(PipeDirection, HandleInheritability)

初始化一個新的類別實例 AnonymousPipeServerStream ,使用指定的管線方向與可繼承模式。

AnonymousPipeServerStream(PipeDirection, SafePipeHandle, SafePipeHandle)

從指定的管線 handle 初始化該 AnonymousPipeServerStream 類別的新實例。

AnonymousPipeServerStream(PipeDirection, HandleInheritability, Int32)

初始化一個新的類別實例 AnonymousPipeServerStream ,並依指定的管線方向、可繼承模式及緩衝區大小。

AnonymousPipeServerStream(PipeDirection, HandleInheritability, Int32, PipeSecurity)

初始化類別的新實例 AnonymousPipeServerStream ,並依指定的管線方向、可繼承模式、緩衝區大小及管線安全性。

AnonymousPipeServerStream()

來源:
AnonymousPipeServerStream.cs
來源:
AnonymousPipeServerStream.cs
來源:
AnonymousPipeServerStream.cs
來源:
AnonymousPipeServerStream.cs
來源:
AnonymousPipeServerStream.cs

初始化 AnonymousPipeServerStream 類別的新執行個體。

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

備註

對於 AnonymousPipeServerStream 沒有 PipeDirection 參數的建構子,預設方向為 Out。 PipeDirection 不支援 的 InOut 值,因為匿名管道被定義為單向。

此建構子建立 AnonymousPipeServerStream 一個物件,其緩衝區大小為預設緩衝區大小,無管線安全性,值為 HandleInheritabilityNone。

適用於

AnonymousPipeServerStream(PipeDirection)

來源:
AnonymousPipeServerStream.cs
來源:
AnonymousPipeServerStream.cs
來源:
AnonymousPipeServerStream.cs
來源:
AnonymousPipeServerStream.cs
來源:
AnonymousPipeServerStream.cs

初始化一個以指定管線方向的新類別實例 AnonymousPipeServerStream 。

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)

參數

direction
PipeDirection

這是決定管子方向的列舉值之一。

匿名管道只能朝一個方向,因此 direction 無法設定為 InOut。

例外狀況

direction 設定為 InOut。

備註

PipeDirection不支援 的InOut值,因為匿名管道被定義為單向。

此建構子建立 AnonymousPipeServerStream 一個物件,其緩衝區大小為預設緩衝區大小,無管線安全性,值為 HandleInheritabilityNone。

適用於

AnonymousPipeServerStream(PipeDirection, HandleInheritability)

來源:
AnonymousPipeServerStream.cs
來源:
AnonymousPipeServerStream.cs
來源:
AnonymousPipeServerStream.cs
來源:
AnonymousPipeServerStream.cs
來源:
AnonymousPipeServerStream.cs

初始化一個新的類別實例 AnonymousPipeServerStream ,使用指定的管線方向與可繼承模式。

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)

參數

direction
PipeDirection

這是決定管子方向的列舉值之一。

匿名管道只能朝一個方向,因此 direction 無法設定為 InOut。

inheritability
HandleInheritability

其中一個列舉值決定底層的 handle 是否能被子程序繼承。 必須設定為 None 或 Inheritable。

例外狀況

inheritability 不設為 None 或 Inheritable。

direction 設定為 InOut。

範例

以下範例示範一種使用匿名管道將字串從父程序傳送到子程序的方法。 在此範例中, AnonymousPipeServerStream 一個物件在父程序中建立,值 PipeDirection 為 Out。

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

備註

PipeDirection不支援 的InOut值,因為匿名管道被定義為單向。

這個建構子會建立 AnonymousPipeServerStream 一個物件,該物件的緩衝區大小是預設的,且沒有管線安全性。

適用於

AnonymousPipeServerStream(PipeDirection, SafePipeHandle, SafePipeHandle)

來源:
AnonymousPipeServerStream.cs
來源:
AnonymousPipeServerStream.cs
來源:
AnonymousPipeServerStream.cs
來源:
AnonymousPipeServerStream.cs
來源:
AnonymousPipeServerStream.cs

從指定的管線 handle 初始化該 AnonymousPipeServerStream 類別的新實例。

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)

參數

direction
PipeDirection

這是決定管子方向的列舉值之一。

匿名管道只能朝一個方向,因此 direction 無法設定為 InOut。

serverSafePipeHandle
SafePipeHandle

一個安全的把手,讓這個 AnonymousPipeServerStream 物體包裹的管子。

clientSafePipeHandle
SafePipeHandle

物品的安全把 AnonymousPipeClientStream 手。

屬性

例外狀況

serverSafePipeHandle 或 clientSafePipeHandle 是無效的帳號。

serverSafePipeHandle 或 clientSafePipeHandle 為 null。

direction 設定為 InOut。

發生了 I/O 錯誤,例如磁碟錯誤。

-或-

數據流已經關閉。

備註

PipeDirection不支援 的InOut值,因為匿名管道被定義為單向。

適用於

AnonymousPipeServerStream(PipeDirection, HandleInheritability, Int32)

來源:
AnonymousPipeServerStream.cs
來源:
AnonymousPipeServerStream.cs
來源:
AnonymousPipeServerStream.cs
來源:
AnonymousPipeServerStream.cs
來源:
AnonymousPipeServerStream.cs

初始化一個新的類別實例 AnonymousPipeServerStream ,並依指定的管線方向、可繼承模式及緩衝區大小。

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)

參數

direction
PipeDirection

這是決定管子方向的列舉值之一。

匿名管道只能朝一個方向,因此 direction 無法設定為 InOut。

inheritability
HandleInheritability

其中一個列舉值決定底層的 handle 是否能被子程序繼承。 必須設定為 None 或 Inheritable。

bufferSize
Int32

緩衝區的大小。 此值必須大於或等於0。

屬性

例外狀況

inheritability 不設為 None 或 Inheritable。

-或-

bufferSize 小於0。

direction 設定為 InOut。

備註

PipeDirection不支援 的InOut值,因為匿名管道被定義為單向。

此建構器創建的物件沒有 AnonymousPipeServerStream 管線安全性。

適用於

AnonymousPipeServerStream(PipeDirection, HandleInheritability, Int32, PipeSecurity)

初始化類別的新實例 AnonymousPipeServerStream ,並依指定的管線方向、可繼承模式、緩衝區大小及管線安全性。

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)

參數

direction
PipeDirection

這是決定管子方向的列舉值之一。

匿名管道只能朝一個方向,因此 direction 無法設定為 InOut。

inheritability
HandleInheritability

其中一個列舉值決定底層的 handle 是否能被子程序繼承。

bufferSize
Int32

緩衝區的大小。 此值必須大於或等於0。

pipeSecurity
PipeSecurity

一個決定管線存取控制與稽核安全性的物件。

屬性

例外狀況

inheritability 不設為 None 或 Inheritable。

-或-

bufferSize 小於0。

direction 設定為 InOut。

備註

PipeDirection不支援 的InOut值,因為匿名管道被定義為單向。

適用於