ObjectPoolingAttribute 构造函数

定义

初始化 ObjectPoolingAttribute 类的新实例。

重载

ObjectPoolingAttribute()

初始化 ObjectPoolingAttribute 类的新实例并将 EnabledMaxPoolSizeMinPoolSizeCreationTimeout 属性设置为其默认值。

ObjectPoolingAttribute(Boolean)

初始化 ObjectPoolingAttribute 类的新实例并设置 Enabled 属性。

ObjectPoolingAttribute(Int32, Int32)

初始化 ObjectPoolingAttribute 类的新实例并设置 MaxPoolSizeMinPoolSize 属性。

ObjectPoolingAttribute(Boolean, Int32, Int32)

初始化 ObjectPoolingAttribute 类的新实例并设置 EnabledMaxPoolSizeMinPoolSize 属性。

ObjectPoolingAttribute()

初始化 ObjectPoolingAttribute 类的新实例并将 EnabledMaxPoolSizeMinPoolSizeCreationTimeout 属性设置为其默认值。

public:
 ObjectPoolingAttribute();
public ObjectPoolingAttribute ();
Public Sub New ()

示例

下面的代码示例演示如何使用此属性。

#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

注解

下表显示了 实例 ObjectPoolingAttribute的初始属性值。

属性
已启用 true
MaxPoolSize -1
MinPoolSize -1
CreationTimeout -1

适用于

ObjectPoolingAttribute(Boolean)

初始化 ObjectPoolingAttribute 类的新实例并设置 Enabled 属性。

public:
 ObjectPoolingAttribute(bool enable);
public ObjectPoolingAttribute (bool enable);
new System.EnterpriseServices.ObjectPoolingAttribute : bool -> System.EnterpriseServices.ObjectPoolingAttribute
Public Sub New (enable As Boolean)

参数

enable
Boolean

如果启用对象池,则为 true;否则为 false

示例

下面的代码示例创建新的 ObjectPoolingAttribute

[ObjectPooling(true)]
public ref class ObjectPoolingAttributeCtorBool : public ServicedComponent
{
};
[ObjectPooling(true)]
public class ObjectPoolingAttribute_Ctor_Bool : ServicedComponent
{
}
<ObjectPooling(True)>  _
Public Class ObjectPoolingAttribute_Ctor_Bool
    Inherits ServicedComponent
End Class

适用于

ObjectPoolingAttribute(Int32, Int32)

初始化 ObjectPoolingAttribute 类的新实例并设置 MaxPoolSizeMinPoolSize 属性。

public:
 ObjectPoolingAttribute(int minPoolSize, int maxPoolSize);
public ObjectPoolingAttribute (int minPoolSize, int maxPoolSize);
new System.EnterpriseServices.ObjectPoolingAttribute : int * int -> System.EnterpriseServices.ObjectPoolingAttribute
Public Sub New (minPoolSize As Integer, maxPoolSize As Integer)

参数

minPoolSize
Int32

最小池大小。

maxPoolSize
Int32

最大池大小。

示例

下面的代码示例创建新的 ObjectPoolingAttribute

[ObjectPooling(1, 10)]
public ref class ObjectPoolingAttributeCtorIntInt : public ServicedComponent
{
};
[ObjectPooling(1, 10)]
public class ObjectPoolingAttribute_Ctor_Int_Int : ServicedComponent
{
}
<ObjectPooling(1, 10)>  _
Public Class ObjectPoolingAttribute_Ctor_Int_Int
    Inherits ServicedComponent
End Class

适用于

ObjectPoolingAttribute(Boolean, Int32, Int32)

初始化 ObjectPoolingAttribute 类的新实例并设置 EnabledMaxPoolSizeMinPoolSize 属性。

public:
 ObjectPoolingAttribute(bool enable, int minPoolSize, int maxPoolSize);
public ObjectPoolingAttribute (bool enable, int minPoolSize, int maxPoolSize);
new System.EnterpriseServices.ObjectPoolingAttribute : bool * int * int -> System.EnterpriseServices.ObjectPoolingAttribute
Public Sub New (enable As Boolean, minPoolSize As Integer, maxPoolSize As Integer)

参数

enable
Boolean

如果启用对象池,则为 true;否则为 false

minPoolSize
Int32

最小池大小。

maxPoolSize
Int32

最大池大小。

示例

下面的代码示例创建新的 ObjectPoolingAttribute

[ObjectPooling(true, 1, 10)]
public ref class ObjectPoolingAttributeCtorBoolIntInt : 
    public ServicedComponent
{
};
[ObjectPooling(true, 1, 10)]
public class ObjectPoolingAttribute_Ctor_Bool_Int_Int : ServicedComponent
{
}
<ObjectPooling(True, 1, 10)>  _
Public Class ObjectPoolingAttribute_Ctor_Bool_Int_Int
    Inherits ServicedComponent
End Class

适用于