WellKnownServiceTypeEntry-Klasse

Enthält Werte für einen Objekttyp, der auf der Dienstseite als Objekt eines vom Server aktivierten Typs (Einzelaufruf oder Singleton) registriert ist.

Namespace: System.Runtime.Remoting
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
<ComVisibleAttribute(True)> _
Public Class WellKnownServiceTypeEntry
    Inherits TypeEntry
'Usage
Dim instance As WellKnownServiceTypeEntry
[ComVisibleAttribute(true)] 
public class WellKnownServiceTypeEntry : TypeEntry
[ComVisibleAttribute(true)] 
public ref class WellKnownServiceTypeEntry : public TypeEntry
/** @attribute ComVisibleAttribute(true) */ 
public class WellKnownServiceTypeEntry extends TypeEntry
ComVisibleAttribute(true) 
public class WellKnownServiceTypeEntry extends TypeEntry

Hinweise

Vom Server aktivierte Objekttypen können entweder Einzelaufruf oder Singleton sein. Beim dem Objekttyp des Einzelaufrufs wird stets eine neue Instanz erstellt, wenn ein Aufruf vom Client eintrifft. Alle Aufrufe eines Singletonobjekts werden von einer Instanz dieses Objekts bearbeitet.

Jeder Client, dem der URI dieses Objekts bekannt ist, kann einen Proxy für dieses Objekt erhalten, indem der bevorzugte Channel mit ChannelServices registriert und das Objekt durch einen Aufruf von new oder Activator.GetObject aktiviert wird.

Beachten Sie unbedingt, dass durch die Registrierung nicht das Remoteobjekt selbst erstellt wird. Dies geschieht nur, wenn ein Client eine Methode für das Objekt aufzurufen versucht oder das Objekt von der Clientseite aus aktiviert.

Eine detaillierte Beschreibung vom Server 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.Http

Public Class MyServer
   
   Public Shared Sub Main()
      ' Create a 'HttpChannel' object and register it with the 
      ' channel services.
      ChannelServices.RegisterChannel(New HttpChannel(8086))
      ' Record the 'HelloServer' type as 'Singleton' well-known type.
      Dim myWellKnownServiceTypeEntry As New WellKnownServiceTypeEntry(GetType(HelloServer), _ 
                                                 "SayHello", WellKnownObjectMode.Singleton)
      ' Register the remote object as well-known type.
      RemotingConfiguration.RegisterWellKnownServiceType(myWellKnownServiceTypeEntry)
      ' Retrieve object types registered on the service end 
      ' as well-known types.
      Dim myWellKnownServiceTypeEntryCollection As WellKnownServiceTypeEntry() = _ 
                                      RemotingConfiguration.GetRegisteredWellKnownServiceTypes()
      Console.WriteLine("The 'WellKnownObjectMode' of the remote object : " + _
                                        myWellKnownServiceTypeEntryCollection(0).Mode.ToString())
      Console.WriteLine("The 'WellKnownServiceTypeEntry' object: " + _ 
                                             myWellKnownServiceTypeEntryCollection(0).ToString())
      Console.WriteLine("Started the Server, Hit <enter> to exit...")
      Console.ReadLine()
   End Sub 'Main
End Class 'MyServer
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;

public class MyServer 
{
   public static void Main() 
   {
      // Create a 'HttpChannel' object and register it with the 
      // channel services.
      ChannelServices.RegisterChannel(new HttpChannel(8086));
      // Record the 'HelloServer' type as 'Singleton' well-known type.
      WellKnownServiceTypeEntry myWellKnownServiceTypeEntry= 
          new WellKnownServiceTypeEntry(typeof(HelloServer),
                                        "SayHello",
                                        WellKnownObjectMode.Singleton);
      // Register the remote object as well-known type.
      RemotingConfiguration.RegisterWellKnownServiceType(
                                          myWellKnownServiceTypeEntry);
      // Retrieve object types registered on the service end 
      // as well-known types.
      WellKnownServiceTypeEntry [] myWellKnownServiceTypeEntryCollection = 
            RemotingConfiguration.GetRegisteredWellKnownServiceTypes();
      Console.WriteLine("The 'WellKnownObjectMode' of the remote object : "
                       +myWellKnownServiceTypeEntryCollection[0].Mode);
      Console.WriteLine("The 'WellKnownServiceTypeEntry' object: "+
                  myWellKnownServiceTypeEntryCollection[0].ToString());
      Console.WriteLine("Started the Server, Hit <enter> to exit...");
      Console.ReadLine();
   }
}
#using <System.Runtime.Remoting.dll>
#using <System.dll>
#using <WellKnownServiceTypeEntry_Share.dll>

using namespace System;
using namespace System::Runtime::Remoting;
using namespace System::Runtime::Remoting::Channels;
using namespace System::Runtime::Remoting::Channels::Http;

int main()
{
   // Create a 'HttpChannel' object and register it with the 
   // channel services.
   ChannelServices::RegisterChannel( gcnew HttpChannel( 8086 ) );

   // Record the 'HelloServer' type as 'Singleton' well-known type.
   WellKnownServiceTypeEntry^ myWellKnownServiceTypeEntry = gcnew WellKnownServiceTypeEntry( HelloServer::typeid,"SayHello",WellKnownObjectMode::Singleton );

   // Register the remote object as well-known type.
   RemotingConfiguration::RegisterWellKnownServiceType( myWellKnownServiceTypeEntry );

   // Retrieve object types registered on the service end 
   // as well-known types.
   array<WellKnownServiceTypeEntry^>^myWellKnownServiceTypeEntryCollection = RemotingConfiguration::GetRegisteredWellKnownServiceTypes();
   Console::WriteLine( "The 'WellKnownObjectMode' of the remote object : {0}", myWellKnownServiceTypeEntryCollection[ 0 ]->Mode );
   Console::WriteLine( "The 'WellKnownServiceTypeEntry' object: {0}", myWellKnownServiceTypeEntryCollection[ 0 ] );
   Console::WriteLine( "Started the Server, Hit <enter> to exit..." );
   Console::ReadLine();
}
import System.*;
import System.Runtime.Remoting.*;
import System.Runtime.Remoting.Channels.*;
import System.Runtime.Remoting.Channels.Http.*;

public class MyServer
{
    public static void main(String[] args)
    {
        // Create a 'HttpChannel' object and register it with the 
        // channel services.
        ChannelServices.RegisterChannel(new HttpChannel(8086));
        // Record the 'HelloServer' type as 'Singleton' well-known type.
        WellKnownServiceTypeEntry myWellKnownServiceTypeEntry = 
            new WellKnownServiceTypeEntry(HelloServer.class.ToType(),
            "SayHello", WellKnownObjectMode.Singleton);
        // Register the remote object as well-known type.
        RemotingConfiguration.RegisterWellKnownServiceType(
            myWellKnownServiceTypeEntry);
        // Retrieve object types registered on the service end 
        // as well-known types.
        WellKnownServiceTypeEntry myWellKnownServiceTypeEntryCollection[] =
            RemotingConfiguration.GetRegisteredWellKnownServiceTypes();
        Console.WriteLine("The 'WellKnownObjectMode' of the remote object : " 
            + myWellKnownServiceTypeEntryCollection[0].get_Mode());
        Console.WriteLine("The 'WellKnownServiceTypeEntry' object: " 
            + myWellKnownServiceTypeEntryCollection.get_Item(0).ToString());
        Console.WriteLine("Started the Server, Hit <enter> to exit...");
        Console.ReadLine();
    } //main
} //MyServer

Vererbungshierarchie

System.Object
   System.Runtime.Remoting.TypeEntry
    System.Runtime.Remoting.WellKnownServiceTypeEntry

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

WellKnownServiceTypeEntry-Member
System.Runtime.Remoting-Namespace
RegisterWellKnownServiceType

Weitere Ressourcen

Serveraktivierung