RemotingConfiguration.RegisterActivatedClientType Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
İstemci ucundaki bir nesneyi Type sunucuda etkinleştirilebilen bir tür olarak kaydeder.
Aşırı Yüklemeler
RegisterActivatedClientType(ActivatedClientTypeEntry) |
İstemci ucunda sağlanan ActivatedClientTypeEntry öğesine kaydedilen bir nesneyi Type sunucuda etkinleştirilebilen bir tür olarak kaydeder. |
RegisterActivatedClientType(Type, String) |
İstemci ucundaki bir nesneyi Type , sınıfın yeni bir örneğini ActivatedClientTypeEntry başlatmak için verilen parametreleri kullanarak sunucuda etkinleştirilebilen bir tür olarak kaydeder. |
RegisterActivatedClientType(ActivatedClientTypeEntry)
İstemci ucunda sağlanan ActivatedClientTypeEntry öğesine kaydedilen bir nesneyi Type sunucuda etkinleştirilebilen bir tür olarak kaydeder.
public:
static void RegisterActivatedClientType(System::Runtime::Remoting::ActivatedClientTypeEntry ^ entry);
public static void RegisterActivatedClientType (System.Runtime.Remoting.ActivatedClientTypeEntry entry);
static member RegisterActivatedClientType : System.Runtime.Remoting.ActivatedClientTypeEntry -> unit
Public Shared Sub RegisterActivatedClientType (entry As ActivatedClientTypeEntry)
Parametreler
- entry
- ActivatedClientTypeEntry
İstemci tarafından etkinleştirilen tür için yapılandırma ayarları.
Özel durumlar
Çağrı yığınında daha yüksek arayanlardan en az birinin uzaktan iletişim türlerini ve kanallarını yapılandırma izni yoktur.
Açıklamalar
Sunucuda istemci tarafından etkinleştirilen bir nesnenin örneğini oluşturmak için, nesnesini bilmeniz Type ve yöntemini kullanarak RegisterActivatedServiceType sunucu ucuna kaydedilmesi gerekir. İstemci tarafından etkinleştirilen nesnenin yeni bir örneği için ara sunucu elde etmek için, istemcinin önce ile ChannelServices bir kanal kaydetmesi ve ardından çağırarak new
nesnesini etkinleştirmesi gerekir.
İstemci tarafından etkinleştirilen nesne türünü anahtar sözcüğüyle new
etkinleştirmek için, önce yöntemini kullanarak RegisterActivatedClientType istemci ucuna nesne türünü kaydetmeniz gerekir. yöntemini çağırmak RegisterActivatedClientType uzaktan iletişim altyapısına uzak uygulamanın oluşturma girişiminde bulunduğu new
konumu verir. Öte yandan, istemci tarafından etkinleştirilen nesnenin yeni bir örneğini oluşturmak için yöntemini kullanırsanız Activator.CreateInstance , uzak uygulamanın URL'sini parametre olarak sağlamanız gerekir, bu nedenle istemci ucunda önceden kayıt yapılması gerekmez.
Activator.CreateInstance yöntemini nesnesini oluşturmak istediğiniz sunucunun URL'sini sağlamak için URL'yi sınıfın UrlAttribute bir örneğinde kapsüllemeniz gerekir.
İstemci tarafından etkinleştirilen nesnelerin ayrıntılı açıklaması için bkz. İstemci Etkinleştirme.
Ayrıca bkz.
Şunlara uygulanır
RegisterActivatedClientType(Type, String)
İstemci ucundaki bir nesneyi Type , sınıfın yeni bir örneğini ActivatedClientTypeEntry başlatmak için verilen parametreleri kullanarak sunucuda etkinleştirilebilen bir tür olarak kaydeder.
public:
static void RegisterActivatedClientType(Type ^ type, System::String ^ appUrl);
public static void RegisterActivatedClientType (Type type, string appUrl);
static member RegisterActivatedClientType : Type * string -> unit
Public Shared Sub RegisterActivatedClientType (type As Type, appUrl As String)
Parametreler
- appUrl
- String
Bu türün etkinleştirildiği uygulamanın URL'si.
Özel durumlar
typeName
veya URI
parametresidirnull
.
Çağrı yığınında daha yüksek arayanlardan en az birinin uzaktan iletişim türlerini ve kanallarını yapılandırma izni yoktur.
Örnekler
Aşağıdaki kod örneği, istemci ucundaki bir nesne türünün sunucuda etkinleştirilebilen bir tür olarak kaydını gösterir. Sunulan istemci koduna karşılık gelen sunucu kodu için yöntem örneğine RegisterActivatedServiceType bakın.
#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 );
RemotingConfiguration::RegisterActivatedClientType( HelloServiceClass::typeid, "tcp://localhost:8082" );
try
{
HelloServiceClass ^ service = gcnew HelloServiceClass;
// 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" );
}
catch (Exception ex)
{
Console::WriteLine("An exception occurred: " + ex.Message);
}
Console::WriteLine();
return 0;
}
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
public class ClientClass {
public static void Main() {
ChannelServices.RegisterChannel(new TcpChannel());
RemotingConfiguration.RegisterActivatedClientType(typeof(HelloServiceClass),
"tcp://localhost:8082");
try
{
HelloServiceClass service = new HelloServiceClass();
// 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();
}
catch (Exception ex)
{
Console.WriteLine("An exception occurred: " + ex.Message);
}
}
}
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels
Imports System.Runtime.Remoting.Channels.Tcp
Public Class ClientClass
Public Shared Sub Main()
ChannelServices.RegisterChannel(New TcpChannel())
RemotingConfiguration.RegisterActivatedClientType(GetType(HelloServiceClass), "tcp://localhost:8082")
Try
Dim service As New HelloServiceClass()
' 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")
Catch ex as Exception
Console.WriteLine("An exception occurred: " + ex.Message)
End Try
Console.WriteLine()
End Sub
End Class
Açıklamalar
Sunucuda istemci tarafından etkinleştirilen bir nesnenin örneğini oluşturmak için, nesnesini bilmeniz Type ve yöntemini kullanarak RegisterActivatedServiceType sunucu ucuna kaydedilmesi gerekir. İstemci tarafından etkinleştirilen nesnenin yeni bir örneği için ara sunucu elde etmek için, istemcinin önce ile ChannelServices bir kanal kaydetmesi ve ardından çağırarak new
nesnesini etkinleştirmesi gerekir.
İstemci tarafından etkinleştirilen nesne türünü anahtar sözcüğüyle new
etkinleştirmek için, önce yöntemini kullanarak RegisterActivatedClientType istemci ucuna nesne türünü kaydetmeniz gerekir. yöntemini çağırmak RegisterActivatedClientType uzaktan iletişim altyapısına uzak uygulamanın oluşturma girişiminde bulunduğu new
konumu verir. Öte yandan, istemci tarafından etkinleştirilen nesnenin yeni bir örneğini oluşturmak için yöntemini kullanırsanız Activator.CreateInstance , uzak uygulamanın URL'sini parametre olarak sağlamanız gerekir, bu nedenle istemci ucunda önceden kayıt yapılması gerekmez.
Activator.CreateInstance yöntemini nesnesini oluşturmak istediğiniz sunucunun URL'sini sağlamak için URL'yi sınıfın UrlAttribute bir örneğinde kapsüllemeniz gerekir.
İstemci tarafından etkinleştirilen nesnelerin ayrıntılı açıklaması için bkz. İstemci Etkinleştirme.