Bagikan melalui


RemotingConfiguration.RegisterActivatedServiceType Metode

Definisi

Mendaftarkan objek pada akhir layanan sebagai objek Type yang dapat diaktifkan berdasarkan permintaan dari klien.

Overload

RegisterActivatedServiceType(ActivatedServiceTypeEntry)

Mendaftarkan jenis objek yang direkam dalam yang disediakan ActivatedServiceTypeEntry pada akhir layanan sebagai jenis yang dapat diaktifkan berdasarkan permintaan dari klien.

RegisterActivatedServiceType(Type)

Mendaftarkan jenis objek tertentu pada akhir layanan sebagai jenis yang dapat diaktifkan berdasarkan permintaan dari klien.

RegisterActivatedServiceType(ActivatedServiceTypeEntry)

Mendaftarkan jenis objek yang direkam dalam yang disediakan ActivatedServiceTypeEntry pada akhir layanan sebagai jenis yang dapat diaktifkan berdasarkan permintaan dari klien.

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)

Parameter

entry
ActivatedServiceTypeEntry

Pengaturan konfigurasi untuk jenis yang diaktifkan klien.

Pengecualian

Setidaknya salah satu penelepon yang lebih tinggi di tumpukan panggilan tidak memiliki izin untuk mengonfigurasi jenis jarak jauh dan saluran.

Keterangan

Untuk membuat instans objek yang diaktifkan klien di server, Anda harus mengetahuinya Type dan itu harus didaftarkan di ujung server dengan menggunakan RegisterActivatedServiceType metode . Untuk mendapatkan proksi untuk instans baru objek yang diaktifkan klien, klien harus terlebih dahulu mendaftarkan saluran ChannelServices dan kemudian mengaktifkan objek dengan memanggil new atau Activator.CreateInstance.

Untuk mengaktifkan jenis objek yang diaktifkan klien dengan new kata kunci , Anda harus terlebih dahulu mendaftarkan jenis objek di ujung klien menggunakan RegisterActivatedClientType metode . Memanggil RegisterActivatedClientType metode memberi infrastruktur jarak jauh lokasi aplikasi jarak jauh, di mana new upaya untuk membuatnya. Jika, di sisi lain, Anda menggunakan CreateInstance metode untuk membuat instans baru objek yang diaktifkan klien, Anda harus menyediakan URL aplikasi jarak jauh sebagai parameter, jadi tidak ada pendaftaran sebelumnya di ujung klien yang diperlukan. Untuk menyediakan CreateInstance metode dengan URL server tempat Anda ingin membuat objek, Anda harus merangkum URL dalam instans UrlAttribute kelas .

Untuk deskripsi terperinci tentang objek yang diaktifkan klien, lihat Aktivasi Klien.

Lihat juga

Berlaku untuk

RegisterActivatedServiceType(Type)

Mendaftarkan jenis objek tertentu pada akhir layanan sebagai jenis yang dapat diaktifkan berdasarkan permintaan dari klien.

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

Parameter

type
Type

Objek Type yang akan didaftarkan.

Pengecualian

Setidaknya salah satu penelepon yang lebih tinggi di tumpukan panggilan tidak memiliki izin untuk mengonfigurasi jenis jarak jauh dan saluran.

Contoh

Contoh kode berikut menunjukkan pendaftaran jenis objek di server sebagai jenis yang dapat diaktifkan oleh klien. Untuk kode klien yang sesuai dengan kode server yang disajikan, lihat contoh untuk metode .RegisterActivatedClientType

#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

Contoh kode berikut menunjukkan objek layanan yang terdaftar dalam kode sampel di atas.

#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

Keterangan

Untuk membuat instans objek yang diaktifkan klien di server, Anda harus mengetahuinya Type dan itu harus didaftarkan di ujung server dengan menggunakan RegisterActivatedServiceType metode . Untuk mendapatkan proksi untuk instans baru objek yang diaktifkan klien, klien harus terlebih dahulu mendaftarkan saluran ChannelServices dan kemudian mengaktifkan objek dengan memanggil new atau Activator.CreateInstance.

Untuk mengaktifkan jenis objek yang diaktifkan klien dengan new kata kunci , Anda harus terlebih dahulu mendaftarkan jenis objek di ujung klien menggunakan RegisterActivatedClientType metode . Memanggil RegisterActivatedClientType metode memberi infrastruktur jarak jauh lokasi aplikasi jarak jauh, di mana new upaya untuk membuatnya. Jika, di sisi lain, Anda menggunakan CreateInstance metode untuk membuat instans baru objek yang diaktifkan klien, Anda harus menyediakan URL aplikasi jarak jauh sebagai parameter, jadi tidak ada pendaftaran sebelumnya di ujung klien yang diperlukan. Untuk menyediakan CreateInstance metode dengan URL server tempat Anda ingin membuat objek, Anda harus merangkum URL dalam instans UrlAttribute kelas .

Untuk deskripsi terperinci tentang objek yang diaktifkan klien, lihat Aktivasi Klien.

Lihat juga

Berlaku untuk