ObjectPoolingAttribute Clase

Definición

Habilita y configura el agrupamiento de objetos para un componente.Enables and configures object pooling for a component. Esta clase no puede heredarse.This class cannot be inherited.

public ref class ObjectPoolingAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class, Inherited=true)]
[System.Runtime.InteropServices.ComVisible(false)]
public sealed class ObjectPoolingAttribute : Attribute
type ObjectPoolingAttribute = class
    inherit Attribute
Public NotInheritable Class ObjectPoolingAttribute
Inherits Attribute
Herencia
ObjectPoolingAttribute
Atributos

Ejemplos

En el ejemplo de código siguiente se muestra el uso de este atributo.The following code example demonstrates the use of this attribute.

#using <System.Windows.Forms.dll>
#using <System.Transactions.dll>
#using <System.EnterpriseServices.dll>

using namespace System;
using namespace System::EnterpriseServices;
using namespace System::Windows::Forms;


[assembly:ApplicationName("ObjectInspector")];
[assembly:ApplicationActivation(ActivationOption::Server)];
[assembly:System::Reflection::AssemblyKeyFile("Inspector.snk")];
[JustInTimeActivation]
[ObjectPooling(MinPoolSize=2,MaxPoolSize=100,CreationTimeout=1000)]
public ref class ObjectInspector: public ServicedComponent
{
public:
   String^ IdentifyObject( Object^ obj )
   {
      // Return this object to the pool after use.
      ContextUtil::DeactivateOnReturn = true;

      // Get the supplied object's type.        
      Type^ objType = obj->GetType();

      // Return its name.
      return (objType->FullName);
   }

protected:
   virtual void Activate() override
   {
      MessageBox::Show( String::Format( "Now entering...\nApplication: {0}\nInstance: {1}\nContext: {2}\n", ContextUtil::ApplicationId.ToString(), ContextUtil::ApplicationInstanceId.ToString(), ContextUtil::ContextId.ToString() ) );
   }

   virtual void Deactivate() override
   {
      MessageBox::Show( "Bye Bye!" );
   }

   // This object can be pooled.
   virtual bool CanBePooled() override
   {
      return (true);
   }
};
using System;
using System.EnterpriseServices;
using System.Windows.Forms;

[assembly: ApplicationName("ObjectInspector")]
[assembly: ApplicationActivation(ActivationOption.Server)]
[assembly: System.Reflection.AssemblyKeyFile("Inspector.snk")]

[JustInTimeActivation]
[ObjectPooling(MinPoolSize=2, MaxPoolSize=100, CreationTimeout=1000)]
public class ObjectInspector : ServicedComponent
{

    public string IdentifyObject (Object obj)
    {
        // Return this object to the pool after use.
        ContextUtil.DeactivateOnReturn = true;

        // Get the supplied object's type.        
        Type objType = obj.GetType();
        
        // Return its name.
        return(objType.FullName);

    }

    protected override void Activate()
    {
        MessageBox.Show( String.Format("Now entering...\nApplication: {0}\nInstance: {1}\nContext: {2}\n",
                                       ContextUtil.ApplicationId.ToString(), ContextUtil.ApplicationInstanceId.ToString(),
                                       ContextUtil.ContextId.ToString() ) );
    }

    protected override void Deactivate()
    {
        MessageBox.Show("Bye Bye!");
    }

    // This object can be pooled.
    protected override bool CanBePooled()
    {
        return(true);
    }

}
Imports System.EnterpriseServices
Imports System.Windows.Forms



<Assembly: ApplicationName("ObjectInspector")> 
<Assembly: ApplicationActivation(ActivationOption.Server)> 
<Assembly: System.Reflection.AssemblyKeyFile("Inspector.snk")> 
 
<JustInTimeActivation(), ObjectPooling(MinPoolSize := 2, MaxPoolSize := 100, CreationTimeout := 1000)>  _
Public Class ObjectInspector
    Inherits ServicedComponent
    
    
    Public Function IdentifyObject(ByVal obj As [Object]) As String 
        ' Return this object to the pool after use.
        ContextUtil.DeactivateOnReturn = True
        
        ' Get the supplied object's type.        
        Dim objType As Type = obj.GetType()
        
        ' Return its name.
        Return objType.FullName
    
    End Function 'IdentifyObject

    Protected Overrides Sub Activate() 
        MessageBox.Show(String.Format("Now entering..." + vbLf + "Application: {0}" + vbLf + "Instance: {1}" + vbLf + "Context: {2}" + vbLf, ContextUtil.ApplicationId.ToString(), ContextUtil.ApplicationInstanceId.ToString(), ContextUtil.ContextId.ToString()))
    
    End Sub

    Protected Overrides Sub Deactivate() 
        MessageBox.Show("Bye Bye!")
    
    End Sub

    ' This object can be pooled.
    Protected Overrides Function CanBePooled() As Boolean 
        Return True
    
    End Function 'CanBePooled

End Class

Comentarios

Si se especifica la agrupación de objetos, no debe deshabilitarse en el catálogo de COM+; Si está habilitado en el catálogo de COM+, debe especificarse en el componente.If object pooling is specified, it must not be disabled in the COM+ catalog; if enabled in the COM+ catalog, it must be specified on the component.

Para obtener una lista de los valores de propiedad iniciales de ObjectPoolingAttributeuna instancia de ObjectPoolingAttribute , vea el constructor.For a list of initial property values for an instance of ObjectPoolingAttribute, see the ObjectPoolingAttribute constructor.

Para obtener más información sobre el uso de atributos, vea atributos.For more information about using attributes, see Attributes.

Constructores

ObjectPoolingAttribute()

Inicializa una nueva instancia de la clase ObjectPoolingAttribute y asigna a las propiedades Enabled, MaxPoolSize, MinPoolSize y CreationTimeout sus valores predeterminados.Initializes a new instance of the ObjectPoolingAttribute class and sets the Enabled, MaxPoolSize, MinPoolSize, and CreationTimeout properties to their default values.

ObjectPoolingAttribute(Boolean)

Inicializa una nueva instancia de la clase ObjectPoolingAttribute y establece el valor de la propiedad Enabled.Initializes a new instance of the ObjectPoolingAttribute class and sets the Enabled property.

ObjectPoolingAttribute(Boolean, Int32, Int32)

Inicializa una nueva instancia de la clase ObjectPoolingAttribute y establece los valores de las propiedades Enabled, MaxPoolSize y MinPoolSize.Initializes a new instance of the ObjectPoolingAttribute class and sets the Enabled, MaxPoolSize, and MinPoolSize properties.

ObjectPoolingAttribute(Int32, Int32)

Inicializa una nueva instancia de la clase ObjectPoolingAttribute y establece el valor de las propiedades MaxPoolSize y MinPoolSize.Initializes a new instance of the ObjectPoolingAttribute class and sets the MaxPoolSize and MinPoolSize properties.

Propiedades

CreationTimeout

Obtiene o establece el tiempo que hay que esperar a que un objeto esté disponible en la agrupación antes de provocar una excepción.Gets or sets the length of time to wait for an object to become available in the pool before throwing an exception. El valor se expresa en milisegundos.This value is in milliseconds.

Enabled

Obtiene o establece un valor que indica si la agrupación de objetos está habilitada.Gets or sets a value that indicates whether object pooling is enabled.

MaxPoolSize

Obtiene o establece el valor para el tamaño máximo de la agrupación.Gets or sets the value for the maximum size of the pool.

MinPoolSize

Obtiene o establece el valor para el tamaño mínimo de la agrupación.Gets or sets the value for the minimum size of the pool.

TypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Heredado de Attribute)

Métodos

AfterSaveChanges(Hashtable)

La infraestructura de .NET Framework llama internamente a este método mientras se instalan y se configuran los ensamblados en el catálogo de COM+.Called internally by the .NET Framework infrastructure while installing and configuring assemblies in the COM+ catalog.

Apply(Hashtable)

La infraestructura de .NET Framework llama internamente a este método mientras se aplica el atributo de clase ObjectPoolingAttribute a un componente con servicio.Called internally by the .NET Framework infrastructure while applying the ObjectPoolingAttribute class attribute to a serviced component.

Equals(Object)

Devuelve un valor que indica si esta instancia es igual que un objeto especificado.Returns a value that indicates whether this instance is equal to a specified object.

(Heredado de Attribute)
GetHashCode()

Devuelve el código hash de esta instancia.Returns the hash code for this instance.

(Heredado de Attribute)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
IsDefaultAttribute()

Si se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Heredado de Attribute)
IsValidTarget(String)

La infraestructura de .NET Framework llama internamente a este método mientras se instalan y se configuran los ensamblados en el catálogo de COM+.Called internally by the .NET Framework infrastructure while installing and configuring assemblies in the COM+ catalog.

Match(Object)

Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Heredado de Attribute)
MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)

Implementaciones de interfaz explícitas

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.Maps a set of names to a corresponding set of dispatch identifiers.

(Heredado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Obtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Heredado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Heredado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.Provides access to properties and methods exposed by an object.

(Heredado de Attribute)

Se aplica a