RemotingConfiguration.RegisterActivatedClientType Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Registrerar ett objekt Type i klientdelen som en typ som kan aktiveras på servern.
Överlagringar
| Name | Description |
|---|---|
| RegisterActivatedClientType(ActivatedClientTypeEntry) |
Registrerar ett objekt Type som registrerats i den angivna ActivatedClientTypeEntry klientdelen som en typ som kan aktiveras på servern. |
| RegisterActivatedClientType(Type, String) |
Registrerar ett objekt Type i klientdelen som en typ som kan aktiveras på servern med hjälp av de angivna parametrarna för att initiera en ny instans av ActivatedClientTypeEntry klassen. |
RegisterActivatedClientType(ActivatedClientTypeEntry)
Registrerar ett objekt Type som registrerats i den angivna ActivatedClientTypeEntry klientdelen som en typ som kan aktiveras på servern.
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)
Parametrar
- entry
- ActivatedClientTypeEntry
Konfigurationsinställningar för den klientaktiverade typen.
Undantag
Minst en av anroparna högre i anropsstacken har inte behörighet att konfigurera fjärrkommunikationstyper och kanaler.
Kommentarer
Om du vill skapa en instans av ett klientaktiverat objekt på servern måste du känna till det Type och det måste vara registrerat på serverslutet RegisterActivatedServiceType med hjälp av metoden . För att hämta en proxy för en ny instans av det klientaktiverade objektet måste klienten först registrera en kanal med ChannelServices och sedan aktivera objektet genom att anropa new.
Om du vill aktivera en klientaktiverad objekttyp med nyckelordet new måste du först registrera objekttypen i klientdelen med hjälp av RegisterActivatedClientType metoden .
RegisterActivatedClientType Att anropa metoden ger fjärrkommunikationsinfrastrukturen platsen för fjärrprogrammet där new försök görs att skapa den. Om du å andra sidan använder Activator.CreateInstance metoden för att skapa en ny instans av det klientaktiverade objektet måste du ange fjärrprogrammets URL som en parameter, så det krävs ingen tidigare registrering i klientdelen. Om du vill ange Activator.CreateInstance metoden med URL:en för den server där du vill skapa objektet måste du kapsla in URL:en i en instans av UrlAttribute klassen.
En detaljerad beskrivning av klientaktiverade objekt finns i Klientaktivering.
Se även
Gäller för
RegisterActivatedClientType(Type, String)
Registrerar ett objekt Type i klientdelen som en typ som kan aktiveras på servern med hjälp av de angivna parametrarna för att initiera en ny instans av ActivatedClientTypeEntry klassen.
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)
Parametrar
- appUrl
- String
URL för programmet där den här typen är aktiverad.
Undantag
Parametern type eller appUrl är null.
Minst en av anroparna högre i anropsstacken har inte behörighet att konfigurera fjärrkommunikationstyper och kanaler.
Exempel
I följande kodexempel visas registrering av en objekttyp i klientdelen som en typ som kan aktiveras på servern. För serverkoden som motsvarar den presenterade klientkoden, se exemplet för RegisterActivatedServiceType metoden.
#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
Kommentarer
Om du vill skapa en instans av ett klientaktiverat objekt på servern måste du känna till det Type och det måste vara registrerat på serverslutet RegisterActivatedServiceType med hjälp av metoden . För att hämta en proxy för en ny instans av det klientaktiverade objektet måste klienten först registrera en kanal med ChannelServices och sedan aktivera objektet genom att anropa new.
Om du vill aktivera en klientaktiverad objekttyp med nyckelordet new måste du först registrera objekttypen i klientdelen med hjälp av RegisterActivatedClientType metoden .
RegisterActivatedClientType Att anropa metoden ger fjärrkommunikationsinfrastrukturen platsen för fjärrprogrammet där new försök görs att skapa den. Om du å andra sidan använder Activator.CreateInstance metoden för att skapa en ny instans av det klientaktiverade objektet måste du ange fjärrprogrammets URL som en parameter, så det krävs ingen tidigare registrering i klientdelen. Om du vill ange Activator.CreateInstance metoden med URL:en för den server där du vill skapa objektet måste du kapsla in URL:en i en instans av UrlAttribute klassen.