ActivatedServiceTypeEntry-Klasse
Enthält Werte für einen Objekttyp, der auf der Dienstseite als solcher registriert ist und auf Anforderung eines Clients aktiviert werden kann.
Namespace: System.Runtime.Remoting
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
<ComVisibleAttribute(True)> _
Public Class ActivatedServiceTypeEntry
Inherits TypeEntry
'Usage
Dim instance As ActivatedServiceTypeEntry
[ComVisibleAttribute(true)]
public class ActivatedServiceTypeEntry : TypeEntry
[ComVisibleAttribute(true)]
public ref class ActivatedServiceTypeEntry : public TypeEntry
/** @attribute ComVisibleAttribute(true) */
public class ActivatedServiceTypeEntry extends TypeEntry
ComVisibleAttribute(true)
public class ActivatedServiceTypeEntry extends TypeEntry
Hinweise
Die aktuelle Klasse wird von der RemotingConfiguration.RegisterActivatedServiceType-Methode verwendet, der serverseitigen Entsprechung der RemotingConfiguration.RegisterActivatedClientType-Methode. Die RegisterActivatedServiceType-Methode wird auf dem Server verwendet, um die Remoteaktivierung angegebener Objekttypen durch Clients zu ermöglichen.
Wenn Sie ein vom Client aktiviertes Objekt auf dem Server erstellen möchten, müssen Sie seinen Type kennen, und das Objekt muss auf der Serverseite mithilfe der RegisterActivatedServiceType-Methode registriert werden. Zum Abrufen eines Proxys für eine neue Instanz des vom Client aktivierten Objekts muss vom Client zunächst ein Channel mit ChannelServices registriert und anschließend das Objekt durch Aufruf von new oder Activator.CreateInstance aktiviert werden.
Wenn Sie mit dem Schlüsselwort new einen vom Client aktivierten Objekttyp aktivieren möchten, müssen Sie diesen unter Verwendung der RegisterActivatedClientType-Methode auf dem Client registrieren. Durch Aufruf von RegisterActivatedClientType weisen Sie der Remotinginfrastruktur den Speicherort der Remoteanwendung zu, in dem new diese zu erstellen versucht. Wenn Sie hingegen eine neue Instanz des vom Client aktivierten Objekts unter Verwendung der CreateInstance-Methode erstellen, müssen Sie den URL der Remoteanwendung als Parameter angeben. Somit ist keine vorherige Registrierung auf dem Client erforderlich. Um für die CreateInstance-Methode den URL des Servers angeben zu können, auf dem Sie das Objekt erstellen möchten, müssen Sie den URL in einer Instanz der UrlAttribute-Klasse kapseln.
Eine detaillierte Beschreibung vom Client aktivierter Objekte und der Aktivierung von Remoteobjekten finden Sie unter Aktivierung von Remoteobjekten.
Beispiel
Imports System
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels
Imports System.Runtime.Remoting.Channels.Tcp
Public Class MyClient
Public Shared Sub Main()
ChannelServices.RegisterChannel(New TcpChannel(8082))
' Create an instance of 'ActivatedServiceTypeEntry' class
' which holds the values for 'HelloServer' type.
Dim myActivatedServiceTypeEntry As New ActivatedServiceTypeEntry(GetType(HelloServer))
' Register an object Type on the service end so that
' it can be activated on request from a client.
RemotingConfiguration.RegisterActivatedServiceType(myActivatedServiceTypeEntry)
' Get the registered activated service types .
Dim myActivatedServiceEntries As ActivatedServiceTypeEntry() = RemotingConfiguration. _
GetRegisteredActivatedServiceTypes()
Console.WriteLine("Information of first registered activated " + " service type :")
Console.WriteLine("Object type: " + myActivatedServiceEntries(0).ObjectType.ToString())
Console.WriteLine("Description: " + myActivatedServiceEntries(0).ToString())
Console.WriteLine("Press enter to stop this process")
Console.ReadLine()
End Sub 'Main
End Class 'MyClient
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
public class MyClient
{
public static void Main()
{
ChannelServices.RegisterChannel(new TcpChannel(8082));
// Create an instance of 'ActivatedServiceTypeEntry' class
// which holds the values for 'HelloServer' type.
ActivatedServiceTypeEntry myActivatedServiceTypeEntry =
new ActivatedServiceTypeEntry(typeof(HelloServer));
// Register an object Type on the service end so that
// it can be activated on request from a client.
RemotingConfiguration.RegisterActivatedServiceType(
myActivatedServiceTypeEntry);
// Get the registered activated service types .
ActivatedServiceTypeEntry[] myActivatedServiceEntries =
RemotingConfiguration.GetRegisteredActivatedServiceTypes();
Console.WriteLine("Information of first registered activated "
+" service type :");
Console.WriteLine("Object type: "
+myActivatedServiceEntries[0].ObjectType);
Console.WriteLine("Description: "
+myActivatedServiceEntries[0].ToString());
Console.WriteLine("Press enter to stop this process");
Console.ReadLine();
}
}
#using <System.Runtime.Remoting.dll>
#using <ActivatedServiceTypeEntry_ObjectType_Share.dll>
using namespace System;
using namespace System::Runtime::Remoting;
using namespace System::Runtime::Remoting::Channels;
using namespace System::Runtime::Remoting::Channels::Tcp;
void main()
{
ChannelServices::RegisterChannel( gcnew TcpChannel( 8082 ) );
// Create an instance of 'ActivatedServiceTypeEntry' class
// which holds the values for 'HelloServer' type.
ActivatedServiceTypeEntry^ myActivatedServiceTypeEntry =
gcnew ActivatedServiceTypeEntry( HelloServer::typeid );
// Register an object Type on the service end so that
// it can be activated on request from a client.
RemotingConfiguration::RegisterActivatedServiceType(
myActivatedServiceTypeEntry );
// Get the registered activated service types.
array<ActivatedServiceTypeEntry^>^ activatedServiceEntries =
RemotingConfiguration::GetRegisteredActivatedServiceTypes();
Console::WriteLine( "Information of first registered activated" +
" service type :" );
Console::WriteLine( "Object type: {0}",
activatedServiceEntries[ 0 ]->ObjectType->ToString() );
Console::WriteLine( "Description: {0}",
activatedServiceEntries[ 0 ]->ToString() );
Console::WriteLine( "Press enter to stop this process" );
Console::ReadLine();
}
import System.*;
import System.Runtime.Remoting.*;
import System.Runtime.Remoting.Channels.*;
import System.Runtime.Remoting.Channels.Tcp.*;
public class MyClient
{
public static void main(String[] args)
{
ChannelServices.RegisterChannel(new TcpChannel(8082));
// Create an instance of 'ActivatedServiceTypeEntry' class
// which holds the values for 'HelloServer' type.
ActivatedServiceTypeEntry myActivatedServiceTypeEntry =
new ActivatedServiceTypeEntry(HelloServer.class.ToType());
// Register an object Type on the service end so that
// it can be activated on request from a client.
RemotingConfiguration.RegisterActivatedServiceType(
myActivatedServiceTypeEntry);
// Get the registered activated service types.
ActivatedServiceTypeEntry myActivatedServiceEntries[] =
RemotingConfiguration.GetRegisteredActivatedServiceTypes();
Console.WriteLine("Information of first registered activated "
+ " service type :");
Console.WriteLine("Object type: "
+ ((ActivatedServiceTypeEntry)myActivatedServiceEntries.
get_Item(0)).get_ObjectType());
Console.WriteLine("Description: "
+ myActivatedServiceEntries.get_Item(0).ToString());
Console.WriteLine("Press enter to stop this process");
Console.ReadLine();
} //main
} //MyClient
Vererbungshierarchie
System.Object
System.Runtime.Remoting.TypeEntry
System.Runtime.Remoting.ActivatedServiceTypeEntry
Threadsicherheit
Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Plattformen
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 unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
ActivatedServiceTypeEntry-Member
System.Runtime.Remoting-Namespace
RegisterActivatedServiceType