CallContext.FreeNamedDataSlot メソッド
アセンブリ: mscorlib (mscorlib.dll 内)



名前付きデータ スロットを作成し、リモート オブジェクトでメソッドを呼び出すクライアントのコード例を次に示します。このメソッドは、論理スレッドから返された名前付きデータ スロットの値を表示し、その名前付きデータ スロットを解放します。
' Register the channel. Dim myChannel As New TcpChannel() ChannelServices.RegisterChannel(myChannel) RemotingConfiguration.RegisterActivatedClientType(GetType(HelloService), "Tcp://localhost:8082") Dim myIdentity As New GenericIdentity("Bob") Dim myPrincipal As New GenericPrincipal(myIdentity, New String() {"Level1"}) Dim myData As New MyLogicalCallContextData(myPrincipal) ' Set DataSlot with name parameter. CallContext.SetData("test data", myData) ' Create a remote object. Dim myService As New HelloService() If myService Is Nothing Then Console.WriteLine("Cannot locate server.") return End If ' Call the Remote methods. Console.WriteLine("Remote method output is " + myService.HelloMethod("Microsoft")) Dim myReturnData As MyLogicalCallContextData = _ CType(CallContext.GetData("test data"), MyLogicalCallContextData) If myReturnData Is Nothing Then Console.WriteLine("Data is null.") Else Console.WriteLine("Data is '{0}'", myReturnData.numOfAccesses) End If ' DataSlot with same Name Parameter which was Set is Freed. CallContext.FreeNamedDataSlot("test data") Dim myReturnData1 As MyLogicalCallContextData = _ CType(CallContext.GetData("test data"), MyLogicalCallContextData) If myReturnData1 Is Nothing Then Console.WriteLine("FreeNamedDataSlot Successful for test data") Else Console.WriteLine("FreeNamedDataSlot Failed for test data") End If
// Register the channel. TcpChannel myChannel = new TcpChannel (); ChannelServices.RegisterChannel(myChannel); RemotingConfiguration.RegisterActivatedClientType(typeof(HelloService),"Tcp://localhost:8082"); GenericIdentity myIdentity = new GenericIdentity("Bob"); GenericPrincipal myPrincipal = new GenericPrincipal(myIdentity,new string[] {"Level1"}); MyLogicalCallContextData myData = new MyLogicalCallContextData(myPrincipal); // Set DataSlot with name parameter. CallContext.SetData("test data",myData); // Create a remote object. HelloService myService = new HelloService(); if (myService == null) { Console.WriteLine("Cannot locate server."); return; } // Call the Remote methods. Console.WriteLine("Remote method output is " + myService.HelloMethod("Microsoft")); MyLogicalCallContextData myReturnData = (MyLogicalCallContextData) CallContext.GetData("test data"); if (myReturnData == null ) Console.WriteLine("Data is null."); else Console.WriteLine("Data is '{0}'", myReturnData.numOfAccesses); // DataSlot with same Name Parameter which was Set is Freed. CallContext.FreeNamedDataSlot("test data"); MyLogicalCallContextData myReturnData1 = (MyLogicalCallContextData) CallContext.GetData("test data"); if (myReturnData1 == null ) Console.WriteLine("FreeNamedDataSlot Successful for test data"); else Console.WriteLine("FreeNamedDataSlot Failed for test data");
// Register the channel. TcpChannel^ myChannel = gcnew TcpChannel; ChannelServices::RegisterChannel( myChannel ); RemotingConfiguration::RegisterActivatedClientType( HelloService::typeid, "Tcp://localhost:8082" ); GenericIdentity^ myIdentity = gcnew GenericIdentity( "Bob" ); array<String^>^ idStr = gcnew array<String^>(1); idStr[ 0 ] = "Level1"; GenericPrincipal^ myPrincipal = gcnew GenericPrincipal( myIdentity, idStr ); MyLogicalCallContextData ^ myData = gcnew MyLogicalCallContextData( myPrincipal ); // Set DataSlot with name parameter. CallContext::SetData( "test data", myData ); // Create a remote Object*. HelloService ^ myService = gcnew HelloService; if ( myService == nullptr ) { Console::WriteLine( "Cannot locate server." ); return -1; } // Call the Remote methods. Console::WriteLine( "Remote method output is {0}", myService->HelloMethod( "Microsoft" ) ); MyLogicalCallContextData ^ myReturnData = (MyLogicalCallContextData^)( CallContext::GetData( "test data" ) ); if ( myReturnData == nullptr ) { Console::WriteLine( "Data is 0." ); } else { Console::WriteLine( "Data is ' {0}'", myReturnData->numOfAccesses ); } // DataSlot with same Name Parameter which was Set is Freed. CallContext::FreeNamedDataSlot( "test data" ); MyLogicalCallContextData ^ myReturnData1 = (MyLogicalCallContextData^)( CallContext::GetData( "test data" ) ); if ( myReturnData1 == nullptr ) { Console::WriteLine( "FreeNamedDataSlot Successful for test data" ); } else { Console::WriteLine( "FreeNamedDataSlot Failed for test data" ); }


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からCallContext.FreeNamedDataSlot メソッドを検索する場合は、下記のリンクをクリックしてください。

- CallContext.FreeNamedDataSlot メソッドのページへのリンク