AnonymousPipeClientStream Constructor (PipeDirection, String^)
Initializes a new instance of the AnonymousPipeClientStream class with the specified pipe direction and a string representation of the pipe handle.
Assembly: System.Core (in System.Core.dll)
public:
[SecurityCriticalAttribute]
AnonymousPipeClientStream(
PipeDirection direction,
String^ pipeHandleAsString
)
Parameters
- direction
-
Type:
System.IO.Pipes::PipeDirection
One of the enumeration values that determines the direction of the pipe.
Anonymous pipes can only be in one direction, so direction cannot be set to InOut.
- pipeHandleAsString
-
Type:
System::String^
A string that represents the pipe handle.
| Exception | Condition |
|---|---|
| ArgumentException | pipeHandleAsString is an invalid handle. |
| ArgumentNullException | pipeHandleAsString is null. |
| NotSupportedException | direction is set to InOut. |
A PipeDirection value of InOut is not supported because anonymous pipes are defined to be one-way.
The following example demonstrates a way to send a string from a parent process to a child process by using anonymous pipes. In this example, an AnonymousPipeClientStream object is created in a child process with a PipeDirection value of In.
#using <System.Core.dll> using namespace System; using namespace System::IO; using namespace System::IO::Pipes; ref class PipeClient { public: static void Main(array<String^>^ args) { if (args->Length > 1) { PipeStream^ pipeClient = gcnew AnonymousPipeClientStream(PipeDirection::In, args[1]); // Show that anonymous Pipes do not support Message mode. try { Console::WriteLine("[CLIENT] Setting ReadMode to \"Message\"."); pipeClient->ReadMode = PipeTransmissionMode::Message; } catch (NotSupportedException^ e) { Console::WriteLine("[CLIENT] Execption:\n {0}", e->Message); } Console::WriteLine("[CLIENT] Current TransmissionMode: {0}.", pipeClient->TransmissionMode); StreamReader^ sr = gcnew StreamReader(pipeClient); // Display the read text to the console String^ temp; // Wait for 'sync message' from the server. do { Console::WriteLine("[CLIENT] Wait for sync..."); temp = sr->ReadLine(); } while (!temp->StartsWith("SYNC")); // Read the server data and echo to the console. while ((temp = sr->ReadLine()) != nullptr) { Console::WriteLine("[CLIENT] Echo: " + temp); } sr->Close(); pipeClient->Close(); } Console::Write("[CLIENT] Press Enter to continue..."); Console::ReadLine(); } }; int main() { array<String^>^ args = Environment::GetCommandLineArgs(); PipeClient::Main(args); }
for full trust for the immediate caller. This member cannot be used by partially trusted code.
Available since 3.5