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