Export (0) Print
Expand All

WellKnownServiceTypeEntry Class

Holds values for an object type registered on the service end as a server-activated type object (single call or singleton).

For a list of all members of this type, see WellKnownServiceTypeEntry Members.

System.Object
   System.Runtime.Remoting.TypeEntry
      System.Runtime.Remoting.WellKnownServiceTypeEntry

[Visual Basic]
Public Class WellKnownServiceTypeEntry
   Inherits TypeEntry
[C#]
public class WellKnownServiceTypeEntry : TypeEntry
[C++]
public __gc class WellKnownServiceTypeEntry : public TypeEntry
[JScript]
public class WellKnownServiceTypeEntry extends TypeEntry

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Remarks

server-activated object types can be either single call or singleton. If an object type is single call, a new instance of it is created each time a call from the client comes in. All calls to a singleton object are handled by one instance of that object.

Any client that knows the URI of this object can obtain a proxy for this object by registering the channel it prefers with ChannelServices and activating the object by calling new or Activator.GetObject.

It is important to note that the remote object itself is not created by the registration process. This only happens when a client attempts to call a method on the object or activates the object from the client side.

For a more detailed description of server-activated objects and remote object activation, see Activation.

Example

[Visual Basic] 
Imports System
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels
Imports System.Runtime.Remoting.Channels.Http

Public Class MyServer
   
   Public Shared Sub Main()
      ' Create a 'HttpChannel' object and register it with the 
      ' channel services.
      ChannelServices.RegisterChannel(New HttpChannel(8086))
      ' Record the 'HelloServer' type as 'Singleton' well-known type.
      Dim myWellKnownServiceTypeEntry As New WellKnownServiceTypeEntry(GetType(HelloServer), _ 
                                                 "SayHello", WellKnownObjectMode.Singleton)
      ' Register the remote object as well-known type.
      RemotingConfiguration.RegisterWellKnownServiceType(myWellKnownServiceTypeEntry)
      ' Retrieve object types registered on the service end 
      ' as well-known types.
      Dim myWellKnownServiceTypeEntryCollection As WellKnownServiceTypeEntry() = _ 
                                      RemotingConfiguration.GetRegisteredWellKnownServiceTypes()
      Console.WriteLine("The 'WellKnownObjectMode' of the remote object : " + _
                                        myWellKnownServiceTypeEntryCollection(0).Mode.ToString())
      Console.WriteLine("The 'WellKnownServiceTypeEntry' object: " + _ 
                                             myWellKnownServiceTypeEntryCollection(0).ToString())
      Console.WriteLine("Started the Server, Hit <enter> to exit...")
      Console.ReadLine()
   End Sub 'Main
End Class 'MyServer

[C#] 
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;

public class MyServer 
{
   public static void Main() 
   {
      // Create a 'HttpChannel' object and register it with the 
      // channel services.
      ChannelServices.RegisterChannel(new HttpChannel(8086));
      // Record the 'HelloServer' type as 'Singleton' well-known type.
      WellKnownServiceTypeEntry myWellKnownServiceTypeEntry= 
          new WellKnownServiceTypeEntry(typeof(HelloServer),
                                        "SayHello",
                                        WellKnownObjectMode.Singleton);
      // Register the remote object as well-known type.
      RemotingConfiguration.RegisterWellKnownServiceType(
                                          myWellKnownServiceTypeEntry);
      // Retrieve object types registered on the service end 
      // as well-known types.
      WellKnownServiceTypeEntry [] myWellKnownServiceTypeEntryCollection = 
            RemotingConfiguration.GetRegisteredWellKnownServiceTypes();
      Console.WriteLine("The 'WellKnownObjectMode' of the remote object : "
                       +myWellKnownServiceTypeEntryCollection[0].Mode);
      Console.WriteLine("The 'WellKnownServiceTypeEntry' object: "+
                  myWellKnownServiceTypeEntryCollection[0].ToString());
      Console.WriteLine("Started the Server, Hit <enter> to exit...");
      Console.ReadLine();
   }
}

[C++] 
#using <mscorlib.dll>
#using <System.Runtime.Remoting.dll>
#using <System.dll>
#using <WellKnownServiceTypeEntry_Share.dll>
using namespace System;
using namespace System::Runtime::Remoting;
using namespace System::Runtime::Remoting::Channels;
using namespace System::Runtime::Remoting::Channels::Http;

int main() 
{
   // Create a 'HttpChannel' object and register it with the 
   // channel services.
   ChannelServices::RegisterChannel(new HttpChannel(8086));
   // Record the 'HelloServer' type as 'Singleton' well-known type.
   WellKnownServiceTypeEntry* myWellKnownServiceTypeEntry= 
      new WellKnownServiceTypeEntry(__typeof(HelloServer),
                                    S"SayHello",
                                    WellKnownObjectMode::Singleton);
   // Register the remote object as well-known type.
   RemotingConfiguration::RegisterWellKnownServiceType(myWellKnownServiceTypeEntry);
   // Retrieve object types registered on the service end 
   // as well-known types.
   WellKnownServiceTypeEntry* myWellKnownServiceTypeEntryCollection[] = 
      RemotingConfiguration::GetRegisteredWellKnownServiceTypes();
   Console::WriteLine(S"The 'WellKnownObjectMode' of the remote object : {0}", __box(myWellKnownServiceTypeEntryCollection[0]->Mode));
   Console::WriteLine(S"The 'WellKnownServiceTypeEntry' object: {0}", myWellKnownServiceTypeEntryCollection[0]);
   Console::WriteLine(S"Started the Server, Hit <enter> to exit...");
   Console::ReadLine();
}

[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button Language Filter in the upper-left corner of the page.

Requirements

Namespace: System.Runtime.Remoting

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

Assembly: Mscorlib (in Mscorlib.dll)

See Also

WellKnownServiceTypeEntry Members | System.Runtime.Remoting Namespace | RegisterWellKnownServiceType | Server Activation

Show:
© 2014 Microsoft