Compartilhar via


WellKnownServiceTypeEntry Classe

Definição

Contém os valores de um tipo de objeto registrado na extremidade de serviço como um objeto de tipo ativado pelo servidor (chamada única ou singleton).

public ref class WellKnownServiceTypeEntry : System::Runtime::Remoting::TypeEntry
public class WellKnownServiceTypeEntry : System.Runtime.Remoting.TypeEntry
[System.Runtime.InteropServices.ComVisible(true)]
public class WellKnownServiceTypeEntry : System.Runtime.Remoting.TypeEntry
type WellKnownServiceTypeEntry = class
    inherit TypeEntry
[<System.Runtime.InteropServices.ComVisible(true)>]
type WellKnownServiceTypeEntry = class
    inherit TypeEntry
Public Class WellKnownServiceTypeEntry
Inherits TypeEntry
Herança
WellKnownServiceTypeEntry
Atributos

Exemplos

#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( gcnew HttpChannel( 8086 ) );

   // Record the 'HelloServer' type as 'Singleton' well-known type.
   WellKnownServiceTypeEntry^ myWellKnownServiceTypeEntry = gcnew WellKnownServiceTypeEntry( HelloServer::typeid,"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.
   array<WellKnownServiceTypeEntry^>^myWellKnownServiceTypeEntryCollection = RemotingConfiguration::GetRegisteredWellKnownServiceTypes();
   Console::WriteLine( "The 'WellKnownObjectMode' of the remote object : {0}", myWellKnownServiceTypeEntryCollection[ 0 ]->Mode );
   Console::WriteLine( "The 'WellKnownServiceTypeEntry' object: {0}", myWellKnownServiceTypeEntryCollection[ 0 ] );
   Console::WriteLine( "Started the Server, Hit <enter> to exit..." );
   Console::ReadLine();
}
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();
   }
}
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
End Class

Comentários

Os tipos de objeto ativados pelo servidor podem ser de chamada única ou singleton. Se um tipo de objeto for uma única chamada, uma nova instância dele será criada sempre que uma chamada do cliente entrar. Todas as chamadas para um objeto singleton são tratadas por uma instância desse objeto.

Qualquer cliente que conheça o URI desse objeto pode obter um proxy para esse objeto registrando o canal com ChannelServices o qual ele prefere e ativando o objeto chamando new ou Activator.GetObject.

É importante observar que o objeto remoto em si não é criado pelo processo de registro. Isso só acontece quando um cliente tenta chamar um método no objeto ou ativa o objeto do lado do cliente.

Para obter uma descrição mais detalhada de objetos ativados pelo servidor e ativação remota de objetos, consulte Ativação de objetos remotos.

Construtores

WellKnownServiceTypeEntry(String, String, String, WellKnownObjectMode)

Inicializa uma nova instância da classe WellKnownServiceTypeEntry com o nome do tipo, o nome do assembly, o URI do objeto e o WellKnownObjectMode fornecidos.

WellKnownServiceTypeEntry(Type, String, WellKnownObjectMode)

Inicializa uma nova instância da classe WellKnownServiceTypeEntry com o Type, o URI do objeto e o WellKnownObjectMode fornecidos.

Propriedades

AssemblyName

Obtém o nome do assembly do tipo de objeto configurado para ser um tipo de ativação remota.

(Herdado de TypeEntry)
ContextAttributes

Obtém ou define os atributos de contexto do tipo de serviço ativado pelo servidor.

Mode

Obtém o WellKnownObjectMode do tipo de serviço ativado pelo servidor.

ObjectType

Obtém o Type do tipo de serviço ativado pelo servidor.

ObjectUri

Obtém o URI do tipo de serviço conhecido.

TypeName

Obtém o nome de tipo completo do tipo de objeto configurado para ser um tipo de ativação remota.

(Herdado de TypeEntry)

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna o nome do tipo, o nome do assembly, o URI do objeto e o WellKnownObjectMode do tipo de ativado pelo servidor como uma String.

Aplica-se a

Confira também