Поделиться через


RemotingConfiguration.RegisterWellKnownClientType Метод

Определение

Регистрирует объект Type со стороны клиента в качестве хорошо известного типа (единственного вызова или одноэлементного множества).

Перегрузки

RegisterWellKnownClientType(WellKnownClientTypeEntry)

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

RegisterWellKnownClientType(Type, String)

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

RegisterWellKnownClientType(WellKnownClientTypeEntry)

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

public:
 static void RegisterWellKnownClientType(System::Runtime::Remoting::WellKnownClientTypeEntry ^ entry);
public static void RegisterWellKnownClientType (System.Runtime.Remoting.WellKnownClientTypeEntry entry);
static member RegisterWellKnownClientType : System.Runtime.Remoting.WellKnownClientTypeEntry -> unit
Public Shared Sub RegisterWellKnownClientType (entry As WellKnownClientTypeEntry)

Параметры

entry
WellKnownClientTypeEntry

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

Исключения

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

Комментарии

Любой клиент, которому известен универсальный код ресурса (URI) зарегистрированного хорошо известного объекта, может получить прокси-сервер для объекта путем регистрации предпочтительного канала в ChannelServicesи активации объекта путем вызова new или Activator.GetObject. Чтобы активировать известный объект с newпомощью , необходимо сначала зарегистрировать известный тип объекта на клиенте RegisterWellKnownClientType с помощью метода . RegisterWellKnownClientType Вызов метода предоставляет инфраструктуре удаленного взаимодействия расположение удаленного объекта, что позволяет ключевому слову new создать его. С другой стороны, если вы используете Activator.GetObject метод для активации хорошо известного объекта, необходимо предоставить ему URL-адрес объекта в качестве аргумента, поэтому предварительная регистрация на стороне клиента не требуется.

Подробное описание известных объектов см. в разделе Активация сервера.

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

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

RegisterWellKnownClientType(Type, String)

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

public:
 static void RegisterWellKnownClientType(Type ^ type, System::String ^ objectUrl);
public static void RegisterWellKnownClientType (Type type, string objectUrl);
static member RegisterWellKnownClientType : Type * string -> unit
Public Shared Sub RegisterWellKnownClientType (type As Type, objectUrl As String)

Параметры

type
Type

Объект Type.

objectUrl
String

Адрес URL хорошо известного объекта.

Исключения

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

Примеры

В следующем примере кода демонстрируется регистрация типа объекта на стороне клиента в качестве хорошо известного типа. Код сервера, соответствующий представленному клиентскому коду, см. в примере для RegisterWellKnownServiceType метода .

#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::Tcp;
using namespace System::Runtime::Remoting::Channels;
int main()
{
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels.Tcp;
using System.Runtime.Remoting.Channels;

public class ClientClass {

    public static void Main() {
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels.Tcp
Imports System.Runtime.Remoting.Channels


Public Class ClientClass
   
   
   Public Shared Sub Main()
ChannelServices::RegisterChannel( gcnew TcpChannel );
RemotingConfiguration::RegisterWellKnownClientType( HelloService::typeid,
                                                    "tcp://localhost:8082/HelloServiceApplication/MyUri" );
HelloService ^ service = gcnew HelloService;
ChannelServices.RegisterChannel(new TcpChannel());

RemotingConfiguration.RegisterWellKnownClientType(
                                                   typeof(HelloService),
                                                   "tcp://localhost:8082/HelloServiceApplication/MyUri"
                                                 );

HelloService service = new HelloService();
ChannelServices.RegisterChannel(New TcpChannel())

RemotingConfiguration.RegisterWellKnownClientType(GetType(HelloService), "tcp://localhost:8082/HelloServiceApplication/MyUri")

Dim service As New HelloService()
   if ( service == nullptr )
   {
      Console::WriteLine( "Could not locate server." );
      return  -1;
   }

   // 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();
   return 0;
}

        if(service == null) {
            Console.WriteLine("Could not locate server.");
            return;
        }

        // 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();
    }
}

      If service Is Nothing Then
         Console.WriteLine("Could not locate server.")
         Return
      End If
            
      ' 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()

   End Sub

End Class

Комментарии

Любой клиент, которому известен универсальный код ресурса (URI) зарегистрированного хорошо известного объекта, может получить прокси-сервер для объекта путем регистрации предпочтительного канала в ChannelServicesи активации объекта путем вызова new или Activator.GetObject. Чтобы активировать известный объект с newпомощью , необходимо сначала зарегистрировать известный тип объекта на клиенте RegisterWellKnownClientType с помощью метода . RegisterWellKnownClientType Вызов метода предоставляет инфраструктуре удаленного взаимодействия расположение удаленного объекта, что позволяет ключевому слову new создать его. С другой стороны, если вы используете Activator.GetObject метод для активации хорошо известного объекта, необходимо предоставить ему URL-адрес объекта в качестве аргумента, поэтому предварительная регистрация на стороне клиента не требуется.

Подробное описание известных объектов см. в разделе Активация сервера.

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

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