AnonymousPipeServerStream 建構函式
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
初始化 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 類別的新執行個體。
public:
AnonymousPipeServerStream();
public AnonymousPipeServerStream();
Public Sub New ()
備註
對於 AnonymousPipeServerStream 沒有 PipeDirection 參數的建構子,預設方向為 Out。 PipeDirection 不支援 的 InOut 值,因為匿名管道被定義為單向。
此建構子建立 AnonymousPipeServerStream 一個物件,其緩衝區大小為預設緩衝區大小,無管線安全性,值為 HandleInheritabilityNone。
適用於
AnonymousPipeServerStream(PipeDirection)
初始化一個以指定管線方向的新類別實例 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 設定為 InOut。
備註
PipeDirection不支援 的InOut值,因為匿名管道被定義為單向。
此建構子建立 AnonymousPipeServerStream 一個物件,其緩衝區大小為預設緩衝區大小,無管線安全性,值為 HandleInheritabilityNone。
適用於
AnonymousPipeServerStream(PipeDirection, HandleInheritability)
初始化一個新的類別實例 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)
參數
- 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)
從指定的管線 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)
參數
- serverSafePipeHandle
- SafePipeHandle
一個安全的把手,讓這個 AnonymousPipeServerStream 物體包裹的管子。
- clientSafePipeHandle
- SafePipeHandle
物品的安全把 AnonymousPipeClientStream 手。
- 屬性
例外狀況
serverSafePipeHandle 或 clientSafePipeHandle 是無效的帳號。
serverSafePipeHandle 或 clientSafePipeHandle 為 null。
direction 設定為 InOut。
備註
PipeDirection不支援 的InOut值,因為匿名管道被定義為單向。
適用於
AnonymousPipeServerStream(PipeDirection, HandleInheritability, Int32)
初始化一個新的類別實例 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)
參數
- inheritability
- HandleInheritability
其中一個列舉值決定底層的 handle 是否能被子程序繼承。 必須設定為 None 或 Inheritable。
- bufferSize
- Int32
緩衝區的大小。 此值必須大於或等於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)
參數
- inheritability
- HandleInheritability
其中一個列舉值決定底層的 handle 是否能被子程序繼承。
- bufferSize
- Int32
緩衝區的大小。 此值必須大於或等於0。
- pipeSecurity
- PipeSecurity
一個決定管線存取控制與稽核安全性的物件。
- 屬性
例外狀況
direction 設定為 InOut。
備註
PipeDirection不支援 的InOut值,因為匿名管道被定義為單向。