This documentation is archived and is not being maintained.
ITransportHeaders Interface
.NET Framework 1.1
Stores a collection of headers used in the channel sinks.
For a list of all members of this type, see ITransportHeaders Members.
[Visual Basic] Public Interface ITransportHeaders [C#] public interface ITransportHeaders [C++] public __gc __interface ITransportHeaders [JScript] public interface ITransportHeaders
Classes that Implement ITransportHeaders
| Class | Description |
|---|---|
| TransportHeaders | Stores a collection of headers used in the channel sinks. |
Example
[Visual Basic] Imports System Imports System.Collections Imports System.Runtime.Remoting Imports System.Runtime.Remoting.Channels Imports System.Runtime.Remoting.Channels.Tcp Class MyITransportHeadersClass Implements ITransportHeaders Private myInt As Integer = 0 Private myDictionaryEntry(9) As DictionaryEntry ' Implement the 'Item' property. Property ITransportHeaders(myKey As Object) As Object Implements ITransportHeaders.Item Get If Not (myKey Is Nothing) Then Dim i As Integer For i = 0 To myInt If myDictionaryEntry(i).Key = myKey Then Return myDictionaryEntry(i).Value End If Next i End If Return 0 End Get Set myDictionaryEntry(myInt) = New DictionaryEntry(myKey, value) myInt += 1 End Set End Property ' Implement the 'GetEnumerator' method. Function GetEnumerator() As IEnumerator Implements ITransportHeaders.GetEnumerator Dim myHashtable As New Hashtable() Dim j As Integer For j = 0 To myInt - 1 myHashtable.Add(myDictionaryEntry(j).Key, myDictionaryEntry(j).Value) Next j Return myHashtable.GetEnumerator() End Function 'ITransportHeaders.GetEnumerator Public Shared Sub Main() Try ' Create and register a 'TcpChannel' object. Dim myTcpChannel As New TcpChannel(8085) ChannelServices.RegisterChannel(myTcpChannel) RemotingConfiguration.RegisterWellKnownServiceType(GetType(MyHelloServer), "SayHello", _ WellKnownObjectMode.SingleCall) ' Create an instance of 'myITransportHeadersObj'. Dim myITransportHeadersObj As New MyITransportHeadersClass() Dim myITransportHeaders As ITransportHeaders = _ CType(myITransportHeadersObj, ITransportHeaders) ' Add items to the header list. myITransportHeaders("Header1") = "TransportHeader1" myITransportHeaders("Header2") = "TransportHeader2" ' Get the 'ITranportHeader' item value with key 'Header2'. Console.WriteLine("ITransport Header item value with key 'Header2' is :" + _ myITransportHeaders("Header2")) Dim myEnumerator As IEnumerator = myITransportHeaders.GetEnumerator() Console.WriteLine(" -KEY- -VALUE-") While myEnumerator.MoveNext() ' Display the 'Key' and 'Value' of the current element. Dim myEntry As Object = myEnumerator.Current Dim myDictionaryEntry As DictionaryEntry = CType(myEntry, DictionaryEntry) Console.WriteLine(" {0}: {1}", myDictionaryEntry.Key, myDictionaryEntry.Value) End While Console.WriteLine("Hit <enter> to exit...") Console.ReadLine() Catch ex As Exception Console.WriteLine("The following exception is raised on the server side: " + ex.Message) End Try End Sub 'Main End Class 'MyITransportHeadersClass [C#] using System; using System.Collections; using System.Runtime.Remoting; using System.Runtime.Remoting.Channels; using System.Runtime.Remoting.Channels.Tcp; class MyITransportHeadersClass : ITransportHeaders { int myInt = 0; DictionaryEntry[] myDictionaryEntry = new DictionaryEntry[10]; // Implement the 'Item' property. object ITransportHeaders.this[object myKey] { get { if(myKey != null) { for(int i = 0; i <= myInt; i++) if(myDictionaryEntry[i].Key == myKey) return myDictionaryEntry[i].Value; } return 0; } set { myDictionaryEntry[myInt] = new DictionaryEntry(myKey, value); myInt++; } } // Implement the 'GetEnumerator' method. IEnumerator ITransportHeaders.GetEnumerator() { Hashtable myHashtable = new Hashtable(); for(int j = 0; j < myInt; j++) myHashtable.Add(myDictionaryEntry[j].Key, myDictionaryEntry[j].Value); return myHashtable.GetEnumerator(); } public static void Main() { try { // Create and register a 'TcpChannel' object. TcpChannel myTcpChannel = new TcpChannel(8085); ChannelServices.RegisterChannel(myTcpChannel); RemotingConfiguration.RegisterWellKnownServiceType(typeof(MyHelloServer), "SayHello", WellKnownObjectMode.SingleCall); // Create an instance of 'myITransportHeadersObj'. MyITransportHeadersClass myITransportHeadersObj = new MyITransportHeadersClass(); ITransportHeaders myITransportHeaders = (ITransportHeaders)myITransportHeadersObj; // Add items to the header list. myITransportHeaders["Header1"] = "TransportHeader1"; myITransportHeaders["Header2"] = "TransportHeader2"; // Get the 'ITranportHeader' item value with key 'Header2'. Console.WriteLine("ITransport Header item value with key 'Header2' is :" +myITransportHeaders["Header2"]); IEnumerator myEnumerator = myITransportHeaders.GetEnumerator(); Console.WriteLine( " -KEY- -VALUE-" ); while ( myEnumerator.MoveNext() ) { // Display the 'Key' and 'Value' of the current element. object myEntry = myEnumerator.Current; DictionaryEntry myDictionaryEntry = (DictionaryEntry)myEntry; Console.WriteLine(" {0}: {1}", myDictionaryEntry.Key, myDictionaryEntry.Value); } Console.WriteLine("Hit <enter> to exit..."); Console.ReadLine(); } catch(Exception ex) { Console.WriteLine("The following exception is raised on the server side: " +ex.Message); } } } [C++] #using <mscorlib.dll> #using <System.Runtime.Remoting.dll> #using <System.dll> #using <ITransportHeaders_3_Share.dll> using namespace System; using namespace System::Collections; using namespace System::Runtime::Remoting; using namespace System::Runtime::Remoting::Channels; using namespace System::Runtime::Remoting::Channels::Tcp; __gc class MyITransportHeadersClass : public ITransportHeaders { int myInt; DictionaryEntry myDictionaryEntry[]; public: MyITransportHeadersClass() { myInt = 0; myDictionaryEntry = new DictionaryEntry[10]; } // Implement the 'Item' property. __property Object* ITransportHeaders::get_Item(Object* myKey) { if(myKey != 0) { for(int i = 0; i <= myInt; i++) if(myDictionaryEntry[i].Key == myKey) return myDictionaryEntry[i].Value; } return 0; } __property void ITransportHeaders::set_Item(Object* myKey, Object* value) { myDictionaryEntry[myInt] = DictionaryEntry(myKey, value); myInt++; } // Implement the 'GetEnumerator' method. IEnumerator* ITransportHeaders::GetEnumerator() { Hashtable* myHashtable = new Hashtable(); for(int j = 0; j < myInt; j++) myHashtable->Add(myDictionaryEntry[j].Key, myDictionaryEntry[j].Value); return myHashtable->GetEnumerator(); } }; int main() { try { // Create and register a 'TcpChannel' object. TcpChannel* myTcpChannel = new TcpChannel(8085); ChannelServices::RegisterChannel(myTcpChannel); RemotingConfiguration::RegisterWellKnownServiceType(__typeof(MyHelloServer), S"SayHello", WellKnownObjectMode::SingleCall); // Create an instance of 'myITransportHeadersObj'. MyITransportHeadersClass* myITransportHeadersObj = new MyITransportHeadersClass(); ITransportHeaders* myITransportHeaders = dynamic_cast<ITransportHeaders*>(myITransportHeadersObj); // Add items to the header list. myITransportHeaders->Item[S"Header1"] = S"TransportHeader1"; myITransportHeaders->Item[S"Header2"] = S"TransportHeader2"; // Get the 'ITranportHeader' item value with key 'Header2'. Console::WriteLine(S"ITransport Header item value with key 'Header2' is :{0}", myITransportHeaders->Item[S"Header2"]); IEnumerator* myEnumerator = myITransportHeaders->GetEnumerator(); Console::WriteLine( S" -KEY- -VALUE-" ); while ( myEnumerator->MoveNext() ) { // Display the 'Key' and 'Value' of the current element. Object* myEntry = myEnumerator->Current; DictionaryEntry myDictionaryEntry = *dynamic_cast<__box DictionaryEntry*>(myEntry); Console::WriteLine(S" {0}: {1}", myDictionaryEntry.Key, myDictionaryEntry.Value); } Console::WriteLine(S"Hit <enter> to exit..."); Console::ReadLine(); } catch(Exception* ex) { Console::WriteLine(S"The following exception is raised on the server side: {0}", ex->Message); } }
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.
Requirements
Namespace: System.Runtime.Remoting.Channels
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family
Assembly: Mscorlib (in Mscorlib.dll)
See Also
ITransportHeaders Members | System.Runtime.Remoting.Channels Namespace
Show: