Freigeben über


WellKnownClientTypeEntry Klasse

Definition

Enthält Werte für einen Objekttyp, der auf dem Client als serveraktiver Typ registriert ist (einzelner Aufruf oder Singleton).

public ref class WellKnownClientTypeEntry : System::Runtime::Remoting::TypeEntry
public class WellKnownClientTypeEntry : System.Runtime.Remoting.TypeEntry
[System.Runtime.InteropServices.ComVisible(true)]
public class WellKnownClientTypeEntry : System.Runtime.Remoting.TypeEntry
type WellKnownClientTypeEntry = class
    inherit TypeEntry
[<System.Runtime.InteropServices.ComVisible(true)>]
type WellKnownClientTypeEntry = class
    inherit TypeEntry
Public Class WellKnownClientTypeEntry
Inherits TypeEntry
Vererbung
WellKnownClientTypeEntry
Attribute

Beispiele

#using <System.Runtime.Remoting.dll>
#using <System.dll>
#using <WellKnownClientTypeEntry_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 with channel services.
   ChannelServices::RegisterChannel( gcnew HttpChannel );
   Console::WriteLine( " Start calling from Client One......." );
   WellKnownClientTypeEntry^ myWellKnownClientTypeEntry = gcnew WellKnownClientTypeEntry( HelloServer::typeid,"http://localhost:8086/SayHello" );
   myWellKnownClientTypeEntry->ApplicationUrl = "http://localhost:8086/SayHello";
   RemotingConfiguration::RegisterWellKnownClientType( myWellKnownClientTypeEntry );

   // Get the proxy object for the remote object.
   HelloServer^ myHelloServerObject = gcnew HelloServer;

   // Retrieve an array of object types registered on the 
   // client end as well-known types.
   array<WellKnownClientTypeEntry^>^myWellKnownClientTypeEntryCollection = RemotingConfiguration::GetRegisteredWellKnownClientTypes();
   Console::WriteLine( "The Application Url to activate the Remote Object :{0}", myWellKnownClientTypeEntryCollection[ 0 ]->ApplicationUrl );
   Console::WriteLine( "The 'WellKnownClientTypeEntry' object :{0}", myWellKnownClientTypeEntryCollection[ 0 ] );

   // Make remote method calls.
   for ( int i = 0; i < 5; i++ )
      Console::WriteLine( myHelloServerObject->HelloMethod( " Client One" ) );
}
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;

public class MyClient 
{
   public static void Main()
   {
   // Create a 'HttpChannel' object and  register with channel services.
   ChannelServices.RegisterChannel(new HttpChannel());
   Console.WriteLine(" Start calling from Client One.......");
   WellKnownClientTypeEntry myWellKnownClientTypeEntry = 
                  new WellKnownClientTypeEntry(typeof(HelloServer),
                                  "http://localhost:8086/SayHello");
   myWellKnownClientTypeEntry.ApplicationUrl="http://localhost:8086/SayHello";
   RemotingConfiguration.RegisterWellKnownClientType(myWellKnownClientTypeEntry);
   // Get the proxy object for the remote object.
   HelloServer myHelloServerObject = new HelloServer();
   // Retrieve an array of object types registered on the 
   // client end as well-known types.
   WellKnownClientTypeEntry [] myWellKnownClientTypeEntryCollection = 
          RemotingConfiguration.GetRegisteredWellKnownClientTypes();
   Console.WriteLine("The Application Url to activate the Remote Object :"
        +myWellKnownClientTypeEntryCollection[0].ApplicationUrl);
   Console.WriteLine("The 'WellKnownClientTypeEntry' object :"
            +myWellKnownClientTypeEntryCollection[0].ToString());
   // Make remote method calls.
   for (int i = 0; i < 5; i++)
         Console.WriteLine(myHelloServerObject.HelloMethod(" Client One"));
   }
}
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels
Imports System.Runtime.Remoting.Channels.Http

Public Class MyClient
   
   Public Shared Sub Main()
      ' Create a 'HttpChannel' object and  register with channel services.
      ChannelServices.RegisterChannel(New HttpChannel())
      Console.WriteLine(" Start calling from Client One.......")
      Dim myWellKnownClientTypeEntry As New WellKnownClientTypeEntry(GetType(HelloServer), _ 
                                                  "http://localhost:8086/SayHello")
      myWellKnownClientTypeEntry.ApplicationUrl = "http://localhost:8086/SayHello"
      RemotingConfiguration.RegisterWellKnownClientType(myWellKnownClientTypeEntry)
      ' Get the proxy object for the remote object.
      Dim myHelloServerObject As New HelloServer()
      ' Retrieve an array of object types registered on the 
      ' client end as well-known types.
      Dim myWellKnownClientTypeEntryCollection As WellKnownClientTypeEntry() = _ 
                                       RemotingConfiguration.GetRegisteredWellKnownClientTypes()
      Console.WriteLine("The Application Url to activate the Remote Object :" + _ 
                                           myWellKnownClientTypeEntryCollection(0).ApplicationUrl)
      Console.WriteLine("The 'WellKnownClientTypeEntry' object :" + _ 
                                              myWellKnownClientTypeEntryCollection(0).ToString())
      ' Make remote method calls.
      Dim i As Integer
      For i = 0 To 4
         Console.WriteLine(myHelloServerObject.HelloMethod(" Client One"))
      Next i
   End Sub
End Class

Hinweise

Serveraktive Typen können entweder einzelner Anruf oder Singleton sein. Wenn eine Klasse als einzelner Anruftyp registriert ist, wird jedes Mal, wenn ein Anruf vom Client eingeht, eine neue Instanz erstellt. Alle Aufrufe eines Singleton-Objekts werden von einer Instanz dieses Objekts behandelt, es sei denn, dieses Objekt wurde erfasst.

Jeder Client, der den URI eines registrierten serveraktiven Objekts kennt, kann einen Proxy für dieses Objekt abrufen, indem er den gewünschten ChannelServices Kanal registriert und das Objekt durch Aufrufen new oder Activator.GetObjectAktivieren des Objekts aktiviert. Um ein serveraktives Objekt mit newzu aktivieren, müssen Sie zuerst den serveraktiven Objekttyp auf dem Client mithilfe der RegisterWellKnownClientType Methode registrieren. Durch Aufrufen RegisterWellKnownClientTypegeben Sie der Remotinginfrastruktur den Standort des Remoteobjekts, wodurch das new Schlüsselwort erstellt werden kann. Wenn Sie dagegen die Activator.GetObject Methode verwenden, um ein serveraktives Objekt zu aktivieren, müssen Sie es als Argument angeben, sodass keine vorherige Registrierung auf dem Client erforderlich ist.

Konstruktoren

Name Beschreibung
WellKnownClientTypeEntry(String, String, String)

Initialisiert eine neue Instanz der WellKnownClientTypeEntry Klasse mit dem angegebenen Typ, Assemblynamen und URL.

WellKnownClientTypeEntry(Type, String)

Initialisiert eine neue Instanz der WellKnownClientTypeEntry Klasse mit dem angegebenen Typ und der URL.

Eigenschaften

Name Beschreibung
ApplicationUrl

Ruft die URL der Anwendung ab, um den Typ zu aktivieren, oder legt sie fest.

AssemblyName

Ruft den Assemblynamen des Objekttyps ab, der als Remoteaktivierungstyp konfiguriert ist.

(Geerbt von TypeEntry)
ObjectType

Ruft den Type serveraktiven Clienttyp ab.

ObjectUrl

Ruft die URL des serveraktiven Clientobjekts ab.

TypeName

Ruft den vollständigen Typnamen des Objekttyps ab, der als remote aktivierter Typ konfiguriert ist.

(Geerbt von TypeEntry)

Methoden

Name Beschreibung
Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Dient als die Standard-Hashfunktion

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ToString()

Gibt den vollständigen Typnamen, Den Assemblynamen und die Objekt-URL des serveraktiven Clienttyps als ein String.

Gilt für:

Weitere Informationen