RemotingConfiguration.RegisterActivatedClientType 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将客户端上的对象 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
客户端激活类型的配置设置。
例外
在调用堆栈上部,至少有一个调用方没有配置远程处理类型和通道的权限。
注解
若要在服务器上创建客户端激活对象的实例,必须知道它 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)
参数
- appUrl
- String
在该处激活类型的应用程序的 URL。
例外
typeName
或 URI
参数为 null
。
在调用堆栈上部,至少有一个调用方没有配置远程处理类型和通道的权限。
示例
下面的代码示例演示了在客户端上将对象类型注册为可在服务器上激活的类型。 有关与呈现的客户端代码对应的服务器代码,请参阅 方法的示例 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 实例中。
有关客户端激活对象的详细说明,请参阅 客户端激活。