ObjectPoolingAttribute 建構函式
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
初始化 ObjectPoolingAttribute 類別的新執行個體。
多載
ObjectPoolingAttribute() |
初始化 ObjectPoolingAttribute 類別的新執行個體,並將 Enabled、MaxPoolSize、MinPoolSize 和 CreationTimeout 屬性設定為其預設值。 |
ObjectPoolingAttribute(Boolean) |
初始化 ObjectPoolingAttribute 類別的新執行個體,並且設定 Enabled 屬性。 |
ObjectPoolingAttribute(Int32, Int32) |
初始化 ObjectPoolingAttribute 類別的新執行個體,並設定 MaxPoolSize 和 MinPoolSize 屬性。 |
ObjectPoolingAttribute(Boolean, Int32, Int32) |
初始化 ObjectPoolingAttribute 類別的新執行個體,並設定 Enabled、MaxPoolSize 和 MinPoolSize 屬性。 |
ObjectPoolingAttribute()
初始化 ObjectPoolingAttribute 類別的新執行個體,並將 Enabled、MaxPoolSize、MinPoolSize 和 CreationTimeout 屬性設定為其預設值。
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 類別的新執行個體,並設定 MaxPoolSize 和 MinPoolSize 屬性。
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 類別的新執行個體,並設定 Enabled、MaxPoolSize 和 MinPoolSize 屬性。
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