ObjectPoolingAttribute Class
Enables and configures object pooling for a component. This class cannot be inherited.
Assembly: System.EnterpriseServices (in System.EnterpriseServices.dll)
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.
For a list of initial property values for an instance of ObjectPoolingAttribute, see the ObjectPoolingAttribute constructor.
For more information about using attributes, see Extending Metadata Using Attributes.
The following code example demonstrates the use of this attribute.
Imports System 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 'Activate Protected Overrides Sub Deactivate() MessageBox.Show("Bye Bye!") End Sub 'Deactivate ' This object can be pooled. Protected Overrides Function CanBePooled() As Boolean Return True End Function 'CanBePooled End Class 'ObjectInspector
#using <mscorlib.dll>
#using <System.Windows.Forms.dll>
#using <System.EnterpriseServices.dll>
using namespace System;
using namespace System::EnterpriseServices;
using namespace System::Windows::Forms;
[assembly: ApplicationName(S"ObjectInspector")]
[assembly: ApplicationActivation(ActivationOption::Server)]
[assembly: System::Reflection::AssemblyKeyFile(S"Inspector.snk")];
[JustInTimeActivation]
[ObjectPooling(MinPoolSize=2, MaxPoolSize=100, CreationTimeout=1000)]
public __gc 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:
void Activate()
{
MessageBox::Show( String::Format(S"Now entering...\nApplication: {0}\nInstance: {1}\nContext: {2}\n",
ContextUtil::ApplicationId.ToString(), ContextUtil::ApplicationInstanceId.ToString(),
ContextUtil::ContextId.ToString() ) );
}
protected:
void Deactivate()
{
MessageBox::Show(S"Bye Bye!");
}
// This object can be pooled.
protected:
bool CanBePooled()
{
return(true);
}
};
Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.