Sdílet prostřednictvím


RemotingConfiguration.RegisterActivatedServiceType Metoda

Definice

Zaregistruje objekt na straně služby jako objekt Type , který lze aktivovat na vyžádání od klienta.

Přetížení

Name Description
RegisterActivatedServiceType(ActivatedServiceTypeEntry)

Zaregistruje typ objektu zaznamenaný v zadané ActivatedServiceTypeEntry službě jako typ, který lze aktivovat na vyžádání od klienta.

RegisterActivatedServiceType(Type)

Zaregistruje zadaný typ objektu na konci služby jako typ, který lze aktivovat na vyžádání od klienta.

RegisterActivatedServiceType(ActivatedServiceTypeEntry)

Zaregistruje typ objektu zaznamenaný v zadané ActivatedServiceTypeEntry službě jako typ, který lze aktivovat na vyžádání od klienta.

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

Parametry

entry
ActivatedServiceTypeEntry

Nastavení konfigurace pro typ aktivovaný klientem.

Výjimky

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

Poznámky

Chcete-li vytvořit instanci objektu aktivovaného klientem na serveru, musíte znát jeho Type a musí být zaregistrována na straně serveru pomocí RegisterActivatedServiceType metody. Chcete-li získat proxy server pro novou instanci objektu aktivovaného klientem, musí klient nejprve zaregistrovat kanál s ChannelServices voláním new nebo Activator.CreateInstance.

Chcete-li aktivovat typ objektu aktivovaný klientem s klíčovým slovem new , musíte nejprve zaregistrovat typ objektu na straně klienta pomocí RegisterActivatedClientType metody. RegisterActivatedClientType Volání metody dává vzdálené infrastruktuře vzdálené komunikace umístění vzdálené aplikace, kde new se ji pokusí vytvořit. Pokud na druhou stranu použijete CreateInstance metodu k vytvoření nové instance objektu aktivovaného klientem, musíte jako parametr zadat adresu URL vzdálené aplikace, takže není nutná žádná předchozí registrace na straně klienta. Chcete-li zadat metodu CreateInstance s adresou URL serveru, kde chcete vytvořit objekt, musíte zapouzdření adresy URL v instanci UrlAttribute třídy.

Viz také

Platí pro

RegisterActivatedServiceType(Type)

Zaregistruje zadaný typ objektu na konci služby jako typ, který lze aktivovat na vyžádání od klienta.

public:
 static void RegisterActivatedServiceType(Type ^ type);
public static void RegisterActivatedServiceType(Type type);
static member RegisterActivatedServiceType : Type -> unit
Public Shared Sub RegisterActivatedServiceType (type As Type)

Parametry

type
Type

Objekt Type , který se má zaregistrovat.

Výjimky

Alespoň jeden z volajících, kteří jsou ve volání vyšší, 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 serveru jako typ, který lze aktivovat klientem. Kód klienta, který odpovídá zobrazenému kódu serveru, najdete v příkladu RegisterActivatedClientType 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;
using namespace System::Runtime::Remoting::Channels::Tcp;

int main()
{
   ChannelServices::RegisterChannel( gcnew TcpChannel( 8082 ) );
   RemotingConfiguration::RegisterActivatedServiceType( HelloServiceClass::typeid );
   Console::WriteLine( "Press enter to stop this process." );
   Console::ReadLine();
   return 0;
}
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;

public class ServerClass {

    public static void Main()  {

        ChannelServices.RegisterChannel(new TcpChannel(8082));

        RemotingConfiguration.RegisterActivatedServiceType(typeof(HelloServiceClass));

        Console.WriteLine("Press enter to stop this process.");
        Console.ReadLine();
    }
}
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels
Imports System.Runtime.Remoting.Channels.Tcp


Public Class ServerClass
      
   Public Shared Sub Main()
      
      ChannelServices.RegisterChannel(New TcpChannel(8082))     
      RemotingConfiguration.RegisterActivatedServiceType(GetType(HelloServiceClass))
      
      Console.WriteLine("Press enter to stop this process.")
      Console.ReadLine()

   End Sub

End Class

Následující příklad kódu ukazuje objekt služby zaregistrovaný ve výše uvedeném vzorovém kódu.

#using <system.dll>

using namespace System;

public ref class HelloServiceClass: public MarshalByRefObject
{
private:
   static int n_instance;

public:
   HelloServiceClass()
   {
      n_instance++;
      Console::WriteLine(  "{0} has been created.  Instance # = {1}", this->GetType()->Name, n_instance );
   }

   ~HelloServiceClass()
   {
      Console::WriteLine( "Destroyed instance {0} of HelloServiceClass.", n_instance );
      n_instance--;
   }

   String^ HelloMethod( String^ name )
   {
      // Reports that the method was called.
      Console::WriteLine();
      Console::WriteLine( "Called HelloMethod on instance {0} with the '{1}' parameter.", n_instance, name );

      // Calculates and returns the result to the client.
      return String::Format( "Hi there {0}", name );
   }
};
using System;

public class HelloServiceClass : MarshalByRefObject {

    static int n_instance;

    public HelloServiceClass() {
        n_instance++;
        Console.WriteLine(this.GetType().Name + " has been created.  Instance # = {0}", n_instance);
    }

    ~HelloServiceClass() {
        Console.WriteLine("Destroyed instance {0} of HelloServiceClass.", n_instance);
        n_instance --;
    }

    public String HelloMethod(String name) {

        // Reports that the method was called.
        Console.WriteLine();
        Console.WriteLine("Called HelloMethod on instance {0} with the '{1}' parameter.",
                             n_instance, name);

        // Calculates and returns the result to the client.
        return "Hi there " + name + ".";
    }
}
Public Class HelloServiceClass
   Inherits MarshalByRefObject
   
   Private Shared n_instance As Integer

      
   Public Sub New()
      n_instance += 1
      Console.WriteLine(Me.GetType().Name + " has been created.  Instance # = {0}", n_instance)
   End Sub
      
   
   Protected Overrides Sub Finalize()
      Console.WriteLine("Destroyed instance {0} of HelloServiceClass.", n_instance)
      n_instance -= 1
      MyBase.Finalize()
   End Sub
   
   
   
   Public Function HelloMethod(name As [String]) As [String]
      
      ' Reports that the method was called.
      Console.WriteLine()
      Console.WriteLine("Called HelloMethod on instance {0} with the '{1}' parameter.", n_instance, name)
      
      ' Calculates and returns the result to the client.
      Return "Hi there " + name + "."

   End Function 'HelloMethod

End Class

Poznámky

Chcete-li vytvořit instanci objektu aktivovaného klientem na serveru, musíte znát jeho Type a musí být zaregistrována na straně serveru pomocí RegisterActivatedServiceType metody. Chcete-li získat proxy server pro novou instanci objektu aktivovaného klientem, musí klient nejprve zaregistrovat kanál s ChannelServices voláním new nebo Activator.CreateInstance.

Chcete-li aktivovat typ objektu aktivovaný klientem s klíčovým slovem new , musíte nejprve zaregistrovat typ objektu na straně klienta pomocí RegisterActivatedClientType metody. RegisterActivatedClientType Volání metody dává vzdálené infrastruktuře vzdálené komunikace umístění vzdálené aplikace, kde new se ji pokusí vytvořit. Pokud na druhou stranu použijete CreateInstance metodu k vytvoření nové instance objektu aktivovaného klientem, musíte jako parametr zadat adresu URL vzdálené aplikace, takže není nutná žádná předchozí registrace na straně klienta. Chcete-li zadat metodu CreateInstance s adresou URL serveru, kde chcete vytvořit objekt, musíte zapouzdření adresy URL v instanci UrlAttribute třídy.

Viz také

Platí pro