RemotingConfiguration.RegisterActivatedClientType Метод

Определение

Регистрирует объект Type в конце клиента в качестве типа, который можно активировать на сервере.

Перегрузки

Имя Описание
RegisterActivatedClientType(ActivatedClientTypeEntry)

Регистрирует объект Type , записанный в предоставленном ActivatedClientTypeEntry на клиентском конце в качестве типа, который можно активировать на сервере.

RegisterActivatedClientType(Type, String)

Регистрирует объект Type в конце клиента в качестве типа, который можно активировать на сервере, используя заданные параметры для инициализации нового экземпляра ActivatedClientTypeEntry класса.

RegisterActivatedClientType(ActivatedClientTypeEntry)

Регистрирует объект Type , записанный в предоставленном ActivatedClientTypeEntry на клиентском конце в качестве типа, который можно активировать на сервере.

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)

Параметры

entry
ActivatedClientTypeEntry

Параметры конфигурации для типа, активируемого клиентом.

Исключения

По крайней мере один из вызывающих абонентов в calltack не имеет разрешения на настройку типов и каналов удаленного взаимодействия.

Комментарии

Чтобы создать экземпляр объекта, активированного клиентом на сервере, необходимо знать его Type и его необходимо зарегистрировать на конце сервера с помощью RegisterActivatedServiceType метода. Чтобы получить прокси-сервер для нового экземпляра объекта, активированного клиентом, клиент должен сначала зарегистрировать канал и ChannelServices активировать объект путем вызова new.

Чтобы активировать тип объекта, активированного клиентом, с new ключевым словом, необходимо сначала зарегистрировать тип объекта в конце клиента с помощью RegisterActivatedClientType метода. RegisterActivatedClientType Вызов метода дает инфраструктуре удаленного взаимодействия расположение удаленного приложения, где new пытается создать его. Если, с другой стороны, вы используете Activator.CreateInstance метод для создания нового экземпляра объекта, активированного клиентом, необходимо указать URL-адрес удаленного приложения в качестве параметра, поэтому предварительная регистрация в конце клиента не требуется. Чтобы указать Activator.CreateInstance метод с URL-адресом сервера, в котором требуется создать объект, необходимо инкапсулировать URL-адрес в экземпляре UrlAttribute класса.

См. также раздел

Применяется к

RegisterActivatedClientType(Type, String)

Регистрирует объект Type в конце клиента в качестве типа, который можно активировать на сервере, используя заданные параметры для инициализации нового экземпляра 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)

Параметры

type
Type

Объект Type.

appUrl
String

URL-адрес приложения, в котором активируется этот тип.

Исключения

Значение type или appUrl параметр null.

По крайней мере один из вызывающих абонентов в calltack не имеет разрешения на настройку типов и каналов удаленного взаимодействия.

Примеры

В следующем примере кода демонстрируется регистрация типа объекта в конце клиента в качестве типа, который можно активировать на сервере. Код сервера, соответствующий представленному клиентскому коду, см. в примере 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

Комментарии

Чтобы создать экземпляр объекта, активированного клиентом на сервере, необходимо знать его Type и его необходимо зарегистрировать на конце сервера с помощью RegisterActivatedServiceType метода. Чтобы получить прокси-сервер для нового экземпляра объекта, активированного клиентом, клиент должен сначала зарегистрировать канал и ChannelServices активировать объект путем вызова new.

Чтобы активировать тип объекта, активированного клиентом, с new ключевым словом, необходимо сначала зарегистрировать тип объекта в конце клиента с помощью RegisterActivatedClientType метода. RegisterActivatedClientType Вызов метода дает инфраструктуре удаленного взаимодействия расположение удаленного приложения, где new пытается создать его. Если, с другой стороны, вы используете Activator.CreateInstance метод для создания нового экземпляра объекта, активированного клиентом, необходимо указать URL-адрес удаленного приложения в качестве параметра, поэтому предварительная регистрация в конце клиента не требуется. Чтобы указать Activator.CreateInstance метод с URL-адресом сервера, в котором требуется создать объект, необходимо инкапсулировать URL-адрес в экземпляре UrlAttribute класса.

См. также раздел

Применяется к