RemotingConfiguration.RegisterActivatedClientType Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Egy objektumot Type regisztrál az ügyfél végén a kiszolgálón aktiválható típusként.
Túlterhelések
| Name | Description |
|---|---|
| RegisterActivatedClientType(ActivatedClientTypeEntry) |
A megadott Type ügyféloldalon rögzített objektumot ActivatedClientTypeEntry a kiszolgálón aktiválható típusként regisztrálja. |
| RegisterActivatedClientType(Type, String) |
Egy objektumot Type regisztrál az ügyfélvégen a kiszolgálón aktiválható típusként, a megadott paraméterek használatával inicializálja az osztály új példányát ActivatedClientTypeEntry . |
RegisterActivatedClientType(ActivatedClientTypeEntry)
A megadott Type ügyféloldalon rögzített objektumot ActivatedClientTypeEntry a kiszolgálón aktiválható típusként regisztrálja.
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)
Paraméterek
- entry
- ActivatedClientTypeEntry
Az ügyfél által aktivált típus konfigurációs beállításai.
Kivételek
A híváshívásban magasabb szintű hívók közül legalább egy nem rendelkezik engedéllyel az újraküldési típusok és csatornák konfigurálásához.
Megjegyzések
Ha ügyfél által aktivált objektumpéldányt szeretne létrehozni a kiszolgálón, ismernie kell annak példányát Type , és a metódus használatával regisztrálnia kell azt a RegisterActivatedServiceType kiszolgáló végén. Az ügyfél által aktivált objektum új példányához tartozó proxy beszerzéséhez az ügyfélnek először regisztrálnia kell egy csatornát ChannelServices , majd hívással newaktiválnia kell az objektumot.
Ha ügyfél által aktivált objektumtípust szeretne aktiválni a new kulcsszóval, először regisztrálnia kell az objektumtípust az ügyfél végén a RegisterActivatedClientType módszerrel. A metódus meghívásával RegisterActivatedClientType az újraegyesítő infrastruktúra a távoli alkalmazás helyét adja meg, ahol new megkísérli létrehozni. Ha viszont ezzel a módszerrel hozza létre az Activator.CreateInstance ügyfél által aktivált objektum új példányát, paraméterként meg kell adnia a távoli alkalmazás URL-címét, így nincs szükség előzetes regisztrációra az ügyféloldalon. Ha meg szeretné adni a Activator.CreateInstance metódust annak a kiszolgálónak az URL-címével, ahol létre szeretné hozni az objektumot, az osztály egy példányában kell beágyaznia az UrlAttribute URL-címet.
Az ügyfél által aktivált objektumok részletes leírását az Ügyfélaktiválás című témakörben találja.
Lásd még
A következőre érvényes:
RegisterActivatedClientType(Type, String)
Egy objektumot Type regisztrál az ügyfélvégen a kiszolgálón aktiválható típusként, a megadott paraméterek használatával inicializálja az osztály új példányát ActivatedClientTypeEntry .
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)
Paraméterek
- appUrl
- String
Annak az alkalmazásnak az URL-címe, ahol ez a típus aktiválva van.
Kivételek
A type vagy appUrl paraméter a következő null: .
A híváshívásban magasabb szintű hívók közül legalább egy nem rendelkezik engedéllyel az újraküldési típusok és csatornák konfigurálásához.
Példák
Az alábbi példakód egy objektumtípus ügyféloldali regisztrációját mutatja be a kiszolgálón aktiválható típusként. A bemutatott ügyfélkódnak megfelelő kiszolgálókód esetében tekintse meg a metódus példáját RegisterActivatedServiceType .
#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
Megjegyzések
Ha ügyfél által aktivált objektumpéldányt szeretne létrehozni a kiszolgálón, ismernie kell annak példányát Type , és a metódus használatával regisztrálnia kell azt a RegisterActivatedServiceType kiszolgáló végén. Az ügyfél által aktivált objektum új példányához tartozó proxy beszerzéséhez az ügyfélnek először regisztrálnia kell egy csatornát ChannelServices , majd hívással newaktiválnia kell az objektumot.
Ha ügyfél által aktivált objektumtípust szeretne aktiválni a new kulcsszóval, először regisztrálnia kell az objektumtípust az ügyfél végén a RegisterActivatedClientType módszerrel. A metódus meghívásával RegisterActivatedClientType az újraegyesítő infrastruktúra a távoli alkalmazás helyét adja meg, ahol new megkísérli létrehozni. Ha viszont ezzel a módszerrel hozza létre az Activator.CreateInstance ügyfél által aktivált objektum új példányát, paraméterként meg kell adnia a távoli alkalmazás URL-címét, így nincs szükség előzetes regisztrációra az ügyféloldalon. Ha meg szeretné adni a Activator.CreateInstance metódust annak a kiszolgálónak az URL-címével, ahol létre szeretné hozni az objektumot, az osztály egy példányában kell beágyaznia az UrlAttribute URL-címet.