RemotingConfiguration.RegisterActivatedServiceType Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
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
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.