Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

ActivatedClientTypeEntry Class

Holds values for an object type registered on the client end as a type that can be activated on the server.

System.Object
  System.Runtime.Remoting.TypeEntry
    System.Runtime.Remoting.ActivatedClientTypeEntry

Namespace:  System.Runtime.Remoting
Assembly:  mscorlib (in mscorlib.dll)
[ComVisibleAttribute(true)]
public class ActivatedClientTypeEntry : TypeEntry

The ActivatedClientTypeEntry type exposes the following members.

  NameDescription
Public methodActivatedClientTypeEntry(Type, String)Initializes a new instance of the ActivatedClientTypeEntry class with the given Type and application URL.
Public methodActivatedClientTypeEntry(String, String, String)Initializes a new instance of the ActivatedClientTypeEntry class with the given type name, assembly name, and application URL.
Top
  NameDescription
Public propertyApplicationUrlGets the URL of the application to activate the type in.
Public propertyAssemblyNameGets the assembly name of the object type configured to be a remote-activated type. (Inherited from TypeEntry.)
Public propertyContextAttributesGets or sets the context attributes for the client-activated type.
Public propertyObjectTypeGets the Type of the client-activated type.
Public propertyTypeNameGets the full type name of the object type configured to be a remote-activated type. (Inherited from TypeEntry.)
Top
  NameDescription
Public methodEquals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetHashCodeServes as the default hash function. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodToStringReturns the type name, assembly name, and application URL of the client-activated type as a String. (Overrides Object.ToString().)
Top

To create an instance of a client-activated object on the client, you must know its Type and it must be registered on the client by using the RegisterActivatedClientType method. To obtain a proxy for a new instance of the client-activated object the client must first register a channel with ChannelServices and then activate the object by calling new.

To activate a client-activated object type with the new keyword, you must first register the object type on the client using the RegisterActivatedClientType method. By calling RegisterActivatedClientType you are giving the remoting infrastructure the location of the remote application where new attempts to create it. If, on the other hand, you use the Activator.CreateInstance method to create a new instance of the client-activated object, you must supply the remote application's URL as a parameter, so no prior registration on the client end is necessary. To supply the Activator.CreateInstance method with the URL of the server on which you want to create the object, you must encapsulate the URL in an instance of the UrlAttribute class.

For a detailed description of client activated objects and remote object activation see [<topic://cpconActivation>].

The following code example shows how to use a ActivatedClientTypeEntry to register a client activated remote object. The example contains three parts, a client, a server, and a remote object used by the client and server.

The following code example shows a client:

using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;

public class MyClient
{
    public static void Main()
    {
        // Register TCP Channel.
        ChannelServices.RegisterChannel(new TcpChannel());

        // Create activated client type entry.
        ActivatedClientTypeEntry myActivatedClientTypeEntry =
            new ActivatedClientTypeEntry(typeof(HelloServer),
            "tcp://localhost:8082");

        // Register type on client to activate it on the server.
        RemotingConfiguration.RegisterActivatedClientType(
            myActivatedClientTypeEntry);

        // Activate a client activated object type.
        HelloServer myHelloServer = new HelloServer("ParameterString");

        // Print the object type.
        Console.WriteLine(
            "Object type of client activated object: " +
            myActivatedClientTypeEntry.ObjectType.ToString());

        // Print the application URL.
        Console.WriteLine(
            "Application url where the type is activated: " +
            myActivatedClientTypeEntry.ApplicationUrl);

        // Print the string representation of the type entry.
        Console.WriteLine(
            "Type name, assembly name and application URL " +
            "of the remote object: " + 
            myActivatedClientTypeEntry.ToString());

        // Print a blank line.
        Console.WriteLine();

        // Check that server was located. 
        if (myHelloServer == null)
        {
            Console.WriteLine("Could not locate server");
        }
        else
        {
            Console.WriteLine("Calling remote object");
            Console.WriteLine(myHelloServer.HelloMethod("Bill"));
        }
    }
}

The following code example shows a server for this client:

using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;

public class MyServer
{
    public static void Main()
    {
        ChannelServices.RegisterChannel(new TcpChannel(8082));
        RemotingConfiguration.RegisterActivatedServiceType(typeof(HelloServer));
        Console.WriteLine("Press enter to stop this process");
        Console.ReadLine();
   }
}

The following code example provides the remote object used by the client and the server:

using System;
public class HelloServer : MarshalByRefObject
{
    public HelloServer(String myString)
    {
        Console.WriteLine("HelloServer activated");
        Console.WriteLine("Parameter passed to the constructor is "+myString);
    }
    public String HelloMethod(String myName)
    {
        Console.WriteLine("HelloMethod : {0}",myName);
        return "Hi there " + myName;
    }
}

.NET Framework

Supported in: 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Show:
© 2014 Microsoft. All rights reserved.