Sdílet prostřednictvím


RemotingConfiguration.RegisterWellKnownClientType Metoda

Definice

Zaregistruje objekt Type na straně klienta jako známý typ (jedno volání nebo singleton).

Přetížení

RegisterWellKnownClientType(WellKnownClientTypeEntry)

Zaregistruje objekt Type zaznamenaný v zadaném WellKnownClientTypeEntry na straně klienta jako dobře známý typ, který lze aktivovat na serveru.

RegisterWellKnownClientType(Type, String)

Zaregistruje objekt Type na straně klienta jako známý typ, který lze aktivovat na serveru pomocí zadaných WellKnownClientTypeEntry parametrů k inicializaci nové instance třídy.

RegisterWellKnownClientType(WellKnownClientTypeEntry)

Zaregistruje objekt Type zaznamenaný v zadaném WellKnownClientTypeEntry na straně klienta jako dobře známý typ, který lze aktivovat na serveru.

public:
 static void RegisterWellKnownClientType(System::Runtime::Remoting::WellKnownClientTypeEntry ^ entry);
public static void RegisterWellKnownClientType (System.Runtime.Remoting.WellKnownClientTypeEntry entry);
static member RegisterWellKnownClientType : System.Runtime.Remoting.WellKnownClientTypeEntry -> unit
Public Shared Sub RegisterWellKnownClientType (entry As WellKnownClientTypeEntry)

Parametry

entry
WellKnownClientTypeEntry

Nastavení konfigurace pro dobře známý typ.

Výjimky

Alespoň jeden z volajících, kteří jsou výše v kanálu volání, nemá oprávnění ke konfiguraci typů vzdálené komunikace a kanálů.

Poznámky

Každý klient, který zná identifikátor URI zaregistrovaného dobře známého objektu, může získat proxy server pro objekt registrací kanálu, kterému dává přednost, a ChannelServicesaktivací objektu voláním new nebo Activator.GetObject. Chcete-li aktivovat dobře známý objekt pomocí new, musíte nejprve zaregistrovat známý typ objektu v klientovi pomocí metody .RegisterWellKnownClientType RegisterWellKnownClientType Volání metody poskytne infrastruktuře vzdálené komunikace umístění vzdáleného objektu, což umožňuje new klíčové slovo vytvořit jej. Pokud naopak použijete metodu Activator.GetObject k aktivaci dobře známého objektu, musíte mu jako argument zadat adresu URL objektu, takže není nutná žádná předchozí registrace na straně klienta.

Podrobný popis dobře známých objektů najdete v tématu Aktivace serveru.

Viz také

Platí pro

RegisterWellKnownClientType(Type, String)

Zaregistruje objekt Type na straně klienta jako známý typ, který lze aktivovat na serveru pomocí zadaných WellKnownClientTypeEntry parametrů k inicializaci nové instance třídy.

public:
 static void RegisterWellKnownClientType(Type ^ type, System::String ^ objectUrl);
public static void RegisterWellKnownClientType (Type type, string objectUrl);
static member RegisterWellKnownClientType : Type * string -> unit
Public Shared Sub RegisterWellKnownClientType (type As Type, objectUrl As String)

Parametry

type
Type

Objekt Type.

objectUrl
String

Adresa URL známého objektu klienta

Výjimky

Alespoň jeden z volajících, kteří jsou výše v kanálu volání, nemá oprávnění ke konfiguraci typů vzdálené komunikace a kanálů.

Příklady

Následující příklad kódu ukazuje registraci typu objektu na straně klienta jako dobře známý typ. Kód serveru, který odpovídá uvedenému klientskému kódu, najdete v příkladu RegisterWellKnownServiceType metody .

#using <system.dll>
#using <system.runtime.remoting.dll>
#using "service.dll"

using namespace System;
using namespace System::Runtime::Remoting;
using namespace System::Runtime::Remoting::Channels::Tcp;
using namespace System::Runtime::Remoting::Channels;
int main()
{
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels.Tcp;
using System.Runtime.Remoting.Channels;

public class ClientClass {

    public static void Main() {
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels.Tcp
Imports System.Runtime.Remoting.Channels


Public Class ClientClass
   
   
   Public Shared Sub Main()
ChannelServices::RegisterChannel( gcnew TcpChannel );
RemotingConfiguration::RegisterWellKnownClientType( HelloService::typeid,
                                                    "tcp://localhost:8082/HelloServiceApplication/MyUri" );
HelloService ^ service = gcnew HelloService;
ChannelServices.RegisterChannel(new TcpChannel());

RemotingConfiguration.RegisterWellKnownClientType(
                                                   typeof(HelloService),
                                                   "tcp://localhost:8082/HelloServiceApplication/MyUri"
                                                 );

HelloService service = new HelloService();
ChannelServices.RegisterChannel(New TcpChannel())

RemotingConfiguration.RegisterWellKnownClientType(GetType(HelloService), "tcp://localhost:8082/HelloServiceApplication/MyUri")

Dim service As New HelloService()
   if ( service == nullptr )
   {
      Console::WriteLine( "Could not locate server." );
      return  -1;
   }

   // Calls the remote method.
   Console::WriteLine();
   Console::WriteLine( "Calling remote Object*" );
   Console::WriteLine( service->HelloMethod( "Caveman" ) );
   Console::WriteLine( service->HelloMethod( "Spaceman" ) );
   Console::WriteLine( service->HelloMethod( "Client Man" ) );
   Console::WriteLine( "Finished remote Object* call" );
   Console::WriteLine();
   return 0;
}

        if(service == null) {
            Console.WriteLine("Could not locate server.");
            return;
        }

        // Calls the remote method.
        Console.WriteLine();
        Console.WriteLine("Calling remote object");
        Console.WriteLine(service.HelloMethod("Caveman"));
        Console.WriteLine(service.HelloMethod("Spaceman"));
        Console.WriteLine(service.HelloMethod("Client Man"));
        Console.WriteLine("Finished remote object call");
        Console.WriteLine();
    }
}

      If service Is Nothing Then
         Console.WriteLine("Could not locate server.")
         Return
      End If
            
      ' Calls the remote method.
      Console.WriteLine()
      Console.WriteLine("Calling remote object")
      Console.WriteLine(service.HelloMethod("Caveman"))
      Console.WriteLine(service.HelloMethod("Spaceman"))
      Console.WriteLine(service.HelloMethod("Client Man"))
      Console.WriteLine("Finished remote object call")
      Console.WriteLine()

   End Sub

End Class

Poznámky

Každý klient, který zná identifikátor URI zaregistrovaného dobře známého objektu, může získat proxy server pro objekt registrací kanálu, kterému dává přednost, a ChannelServicesaktivací objektu voláním new nebo Activator.GetObject. Chcete-li aktivovat dobře známý objekt pomocí new, musíte nejprve zaregistrovat známý typ objektu v klientovi pomocí metody .RegisterWellKnownClientType RegisterWellKnownClientType Volání metody poskytne infrastruktuře vzdálené komunikace umístění vzdáleného objektu, což umožňuje new klíčové slovo vytvořit jej. Pokud naopak použijete metodu Activator.GetObject k aktivaci dobře známého objektu, musíte mu jako argument zadat adresu URL objektu, takže není nutná žádná předchozí registrace na straně klienta.

Podrobný popis dobře známých objektů najdete v tématu Aktivace serveru.

Viz také

Platí pro