WellKnownClientTypeEntry Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Bevat waarden voor een objecttype dat is geregistreerd op de client als een door de server geactiveerd type (één aanroep of 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
- Overname
- Kenmerken
Voorbeelden
#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
Opmerkingen
Door de server geactiveerde typen kunnen één aanroep of singleton zijn. Als een klasse is geregistreerd als één aanroeptype, wordt telkens wanneer een aanroep van de client binnenkomt een nieuw exemplaar gemaakt. Alle aanroepen naar een singleton-object worden verwerkt door één exemplaar van dat object, tenzij dat object is verzameld.
Elke client die de URI van een geregistreerd server geactiveerd object kent, kan een proxy voor dit object verkrijgen door het kanaal te registreren waarmee ChannelServices het object de voorkeur geeft en het object te activeren door aan te roepen new of Activator.GetObject. Als u een door de server geactiveerd object wilt newactiveren, moet u eerst het door de server geactiveerde objecttype op de client registreren met behulp van de RegisterWellKnownClientType methode. Door aan te roepen RegisterWellKnownClientType, geeft u de externe infrastructuur de locatie van het externe object, waardoor het new trefwoord kan maken. Als u daarentegen de methode gebruikt om een door de Activator.GetObject server geactiveerd object te activeren, moet u dit opgeven met de URL van het object als argument, zodat er geen voorafgaande registratie op de client nodig is.
Zie Activering van externe objecten voor een gedetailleerde beschrijving van door de server geactiveerde objecten en externe objectactivering.
Constructors
| Name | Description |
|---|---|
| WellKnownClientTypeEntry(String, String, String) |
Initialiseert een nieuw exemplaar van de WellKnownClientTypeEntry klasse met het opgegeven type, de assemblynaam en de URL. |
| WellKnownClientTypeEntry(Type, String) |
Initialiseert een nieuw exemplaar van de WellKnownClientTypeEntry klasse met het opgegeven type en de URL. |
Eigenschappen
| Name | Description |
|---|---|
| ApplicationUrl |
Hiermee haalt u de URL van de toepassing op of stelt u deze in om het type in te schakelen. |
| AssemblyName |
Hiermee haalt u de assemblynaam op van het objecttype dat is geconfigureerd als een extern geactiveerd type. (Overgenomen van TypeEntry) |
| ObjectType |
Hiermee haalt u het Type clienttype op dat door de server is geactiveerd. |
| ObjectUrl |
Hiermee haalt u de URL op van het clientobject dat door de server is geactiveerd. |
| TypeName |
Hiermee wordt de volledige typenaam opgehaald van het objecttype dat is geconfigureerd als een extern geactiveerd type. (Overgenomen van TypeEntry) |
Methoden
| Name | Description |
|---|---|
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Retourneert de volledige typenaam, assemblynaam en object-URL van het door de server geactiveerde clienttype als een String. |